FCUseCache[func,{arg1,...},{opt1...}]
evaluates
func[arg1,...,opt1,...]
and caches the result such that the
next evaluation of same expressions occurs almost immediately. This
caching also takes into account DownValues
and global
variables that enter into evaluation of func.
For example, ExpandScalarProduct
can’t be naively
cached, because its result depends on the DownValues
of
Pair
and ScalarProduct
, which may be changed
multiple times during the session by setting and erasing values of
scalar products. With FCUseCache
, however, caching will
work properly, as FCUseCache
knows the dependence on
ExpandScalarProduct
on those DownValues. For all this to
work, a function should be explicitly white-listed in FCUseCache.