# GAMS Support Wiki

### Site Tools

gams:getting_the_index_position_of_the_largest_element_of_a_set

# Getting the index position of the largest element of a parameter

I have a problem of choosing indexes for the maximum value of a parameter. Let `a(i,j)` be a parameter with `Sets i /i1*i5/, j /j1*j10/`. Let

`Maxa = smax((i,j), a(i,j));`

How do I get the index for `i` and `j` which lead to value `Maxa`?

Try:

```Set i /i1 * i5/,
j /j1 * j4/,
posmax(i,j) 'position of largest element';

Parameter a(i,j) 'some data',
maxa   'largest element of a';

a(i,j)=uniformint (1,100);
maxa = smax((i,j), a(i,j));
posmax(i,j) = a(i,j) = maxa;

Option decimals=0;
display a, maxa, posmax;```
```----     13 PARAMETER a  some data

j1          j2          j3          j4

i1          18          85          56          31
i2          30          23          35          86
i3           7          51         100          58
i4         100          77          14          64
i5          16          26          67          44

----     13 PARAMETER maxa                 =          100  largest element of a

----     13 SET posmax  position of largest element

j1          j3

i3                     YES
i4         YES```

In case just one element is wanted and not all index positions with the maximum number, one can use a Singleton Set like this:

```Singleton Set posmaxS(i,j);
Option strictSingleton=0;
posmaxS(i,j) = a(i,j) = maxa;
display posmaxS;```
```----     18 SET posmaxS

j3

i3         YES```