Cache Command
create a new cache table
Calling Sequence
Parameters
Description
Examples
Cache( opts )
Cache( n, opts )
Cache( cache, opts )
n
-
integer; size of cache table to create
cache
cache table; cache table to copy
opts
(optional) equations of the form option=value, where option is one of procedure, temporary or permanent
The Cache command is a top-level command that creates a new cache table. If n is given, the returned table will be capable of storing at least n distinct temporary entries. Increasing n may also make accessing permanent elements faster.
For example:
c1 := Cache( 100, permanent=[ a=2, b=3 ], temporary=[ c=4, d=5] );
c1≔Cache⁡128,temporary=d=5,c=4,permanent=b=3,a=2
If cache is given, a cache table with the same size as cache is created. As well, the entries of cache, both temporary and permanent, are inserted into the new cache table. Any additional entries specified by optional parameters are also added.
There are three optional arguments: procedure, temporary, and permanent.
procedure = p
The procedure optional argument accepts a procedure, p as an argument. The newly created cache table is installed as p's remember table. If p has option remember or it already has a remember table, an error is raised.
temporary = list
The temporary optional argument accepts a list of equations that are used to initialize the temporary entries of the cache table. The lhs of each equation is used as the key and the rhs is used as the value. As a cache table is only capable of storing a fixed number of temporary entries, there is no guarantee that all the entries in the list will be in the returned table.
permanent = list
The permanent optional argument accepts a list of equations that are used to initialize the permanent entries of the cache table. The lhs of each equation is used as the key and the rhs is used as the value.
For more information on cache tables, see Cache Package.
The Cache command is always called using the Cache(arguments) calling sequence. You do not need to use with(Cache).
c1≔Cache⁡60,permanent=1=2,2=3,temporary=3=4,4=5
c1≔Cache⁡64,temporary=3=4,4=5,permanent=1=2,2=3
c2≔Cache⁡c1,permanent=x=y,y=z,temporary=a=b,b=c
c2≔Cache⁡64,temporary=b=c,3=4,4=5,a=b,permanent=1=2,2=3,y=z,x=y
p := proc(x) return 1; end proc;
p ≔ procxreturn1end proc
Cache⁡c2,procedure=p
Cache⁡64,temporary=b=c,3=4,4=5,a=b,permanent=1=2,2=3,y=z,x=y
p⁡1
2
p⁡a
b
See Also
Cache Package
Cache[AddPermanent]
Cache[AddTemporary]
Cache[PermanentEntries]
Cache[PermanentIndices]
Cache[RemovePermanent]
Cache[RemoveTemporary]
Cache[Resize]
Cache[TemporaryEntries]
Cache[TemporaryIndices]
option cache
Download Help Document