UpperBound( n, d, q )
UpperBound
returns the best known upper bound A(<n>,<d>) for the size
of a code of length n, minimum distance d over a field of size q.
The function UpperBound
first checks for trivial cases (like <d>=1 or
<n>=<d>) and if the value is in the built-in table. Then it calculates
the minimum value of the upper bound using the methods of Singleton (see
UpperBoundSingleton), Hamming (see UpperBoundHamming), Johnson (see
UpperBoundJohnson), Plotkin (see UpperBoundPlotkin) and Elias (see
UpperBoundElias). If the code is binary, A(<n>, 2*l-1) = A(<n>+1,
2*l), so the UpperBound
takes the minimum of the values obtained from
all methods for the parameters (<n>, 2*l-1) and (<n>+1, 2*l).
gap> UpperBound( 10, 3, 2 ); 85 gap> UpperBound( 25, 9, 8 ); 1211778792827540
GAP 3.4.4