aboutsummaryrefslogtreecommitdiff
path: root/src/test/modules/test_json_parser/test_json_parser_incremental.c
diff options
context:
space:
mode:
authorDean Rasheed <dean.a.rasheed@gmail.com>2024-07-09 10:00:42 +0100
committerDean Rasheed <dean.a.rasheed@gmail.com>2024-07-09 10:00:42 +0100
commitca481d3c9ab7bf69ff0c8d71ad3951d407f6a33c (patch)
treec63b2644234ef19ca7463c6ddfa776211f88ad53 /src/test/modules/test_json_parser/test_json_parser_incremental.c
parent42de72fa7b80645347cd7ef3fbb6b0b58d0870f2 (diff)
downloadpostgresql-ca481d3c9ab7bf69ff0c8d71ad3951d407f6a33c.tar.gz
postgresql-ca481d3c9ab7bf69ff0c8d71ad3951d407f6a33c.zip
Optimise numeric multiplication for short inputs.
When either input has a small number of digits, and the exact product is requested, the speed of numeric multiplication can be increased significantly by using a faster direct multiplication algorithm. This works by fully computing each result digit in turn, starting with the least significant, and propagating the carry up. This save cycles by not requiring a temporary buffer to store digit products, not making multiple passes over the digits of the longer input, and not requiring separate carry-propagation passes. For now, this is used when the shorter input has 1-4 NBASE digits (up to 13-16 decimal digits), and the longer input is of any size, which covers a lot of common real-world cases. Also, the relative benefit increases as the size of the longer input increases. Possible future work would be to try extending the technique to larger numbers of digits in the shorter input. Joel Jacobson and Dean Rasheed. Discussion: https://postgr.es/m/44d2ffca-d560-4919-b85a-4d07060946aa@app.fastmail.com
Diffstat (limited to 'src/test/modules/test_json_parser/test_json_parser_incremental.c')
0 files changed, 0 insertions, 0 deletions