Calculating the divided differences of the exponential function by addition and removal of inputs
Abstract
We introduce a method for calculating the divided differences of the exponential function by means of addition and removal of items from the input list to the function. Our technique exploits a new identity related to divided differences recently derived by Zivcovich (2019). We show that upon adding an item to or removing an item from the input list of an already evaluated exponential, the re-evaluation of the divided differences can be done with only O(sn) floating point operations and O(sn) bytes of memory, where [z0 , … ,zn ] are the inputs and s ∝maxi,j |zi -zj | . We demonstrate our algorithm's ability to deal with input lists that are orders-of-magnitude longer than the maximal capacities of the current state-of-the-art. We discuss in detail one practical application of our method: the efficient calculation of weights in the off-diagonal series expansion quantum Monte Carlo algorithm.
- Publication:
-
Computer Physics Communications
- Pub Date:
- September 2020
- DOI:
- arXiv:
- arXiv:1912.12157
- Bibcode:
- 2020CoPhC.25407385G
- Keywords:
-
- Divided differences;
- Matrix exponential;
- Scaling and squaring method;
- Quantum Monte Carlo algorithms;
- Off-diagonal series expansion;
- Physics - Computational Physics;
- Mathematics - Numerical Analysis
- E-Print:
- 9 pages, 3 figures