When the calculation time in Mathematica notebooks becomes long, it makes sense to save the results somewhere so that they can be easily reloaded in a new session without the need for recalculation.
Since I do this quite often, I wrote a simple function cachedCalc
that automatically takes care of this.
Instead of writing e.g.
integral=Integrate[Sin[x]^17, {x, 1, 5}]
write
cachedCalc[integral, Integrate[Sin[x]^17, {x, 1, 5}]]
and cachedCalc
will take care of everything else. You can force recalculation and a max age of the cached values
both for each function and also by setting global variables. Details are described in the usage
message of the function
(available from within Mathematica with ?cachedCalc
or check the source code below).
The implementation is pretty straightforward, essentially just making use of Mathematica’s dumpSave
and dumpGet
functions.
The only subtleties are related to variable assignments for variables whose name is given by a string, or getting the
variable name as a string if a variable itself (and not its name) is given as argument for cachedCalc
.