Description
$SLICE idendt ( label,label,.... ) label ::= domain | * | quoted label Contributor: Lutz Westermann, April 2026
Small Model of Type : GAMS
Category : GAMS Test library
Main file : slice1.gms
$title 'Test general $slice functionality (SLICE1,SEQ=993)'
$onText
$slice is a variant of $clear which allows partial removal of elements in a symbol:
$SLICE idendt ( label,label,.... )
label ::= domain | * | quoted label
Contributor: Lutz Westermann, April 2026
$offText
Set i / i1*i3 /;
Alias (i,j,k);
Set mset(i,j,k) / #i.#j.#k /;
$slice mset('i1', 'i2', 'i1')
$gdxUnload have1.gdx mset
$slice mset('i2', j, 'i2')
$gdxUnload have2.gdx mset
$slice mset( *, *, 'i3')
$gdxUnload have3.gdx mset
Set mwant(i,j,k) / #i.#j.#k /;
mwant('i1', 'i2', 'i1') = no;
execute_unload 'want1.gdx', mwant=mset;
mwant('i2', j, 'i2') = no;
execute_unload 'want2.gdx', mwant=mset;
mwant( i, j, 'i3') = no;
execute_unload 'want3.gdx', mwant=mset;
execute.checkErrorLevel "gdxdiff want1.gdx have1.gdx > %system.NullFile%";
execute.checkErrorLevel "gdxdiff want2.gdx have2.gdx > %system.NullFile%";
execute.checkErrorLevel "gdxdiff want3.gdx have3.gdx > %system.NullFile%";