Patent Document ID: 7756854
Application ID: 11739722
Patent Flag: 1

Claim One:
1. A calculation engine in a computer system with a processor for updating values in a multidimensional database, the calculation engine comprising: a downward propagator, executed by the processor, for determining a set of first component cells of a first cell, the set of first component cells affecting the first cell through a first set of formulas, wherein the calculation engine receives a value for updating the first cell in the multidimensional database and wherein the calculation engine marks the first cell as a changed cell; the downward propagator determining a set of subsequent component cells affecting the set of first component cells through a first set of subsequent formulas; the downward propagator marking the set of first component cells and the set of subsequent component cells as allocated cells; an upward propagator, when executed by the processor, for determining a set of first target cells, the set of first target cells being affected by the first cell, the set of first component cells, or the set of subsequent component cells through a second set of formulas; the upward propagator determining a set of subsequent target cells affected by the set of first target cells through a second set of subsequent formulas; the upward propagator marking the set of first target cells and the set of subsequent target cells as changed cells; a downward searcher, executed by the processor, for identifying a third set of formulas for the set of first component cells, the set of subsequent component cells, the set of first target cells, or the set of subsequent target cells; the downward searcher determining a set of unmarked component cells through the third set of formulas; the downward searcher marking the set of unmarked component cells as a required cells; the calculation engine performing calculations for the first cell, the set of first component cells, the set of subsequent component cells, the first target cells, and the set of subsequent target cells; and the calculation engine updating only cells marked as changed cells based on the calculations.