Tuple

public final class Tuple

An immutable tuple. All methods of this class throw a NullPointerException if a null object reference is passed in any parameter.

Constructors

Tuple

public Tuple(Object... elements)

Constructs a new Tuple from the specified elements.

The elements in a Tuple can be numbers or strings.

All basic Java numeric types are converted to double, as AMPL supports only one numeric type.

Methods

asStrings

Tuple asStrings()

clone

public Tuple clone()

Clone the tuple

elements

public Object[] elements()

Returns a new array containing the tuple elements.

elementsToStringNoBrackets

static String elementsToStringNoBrackets(Object[] elem)

equals

public boolean equals(Object other)

Checks for deep equality

equalsInAMPL

boolean equalsInAMPL(Tuple other)

formatElement

static String formatElement(Object element)

formatGenericElement

static String formatGenericElement(Object element)

get

public Object get(int index)

Returns the element at the specified position in this tuple.

hashCode

public int hashCode()

Hash code of all elements

insert

public void insert(Object[] array, int index)

Inserts the elements of this tuple into the specified array starting from the specified index.

join

public static Tuple join(Object... elements)

Constructs a new Tuple joining the specified elements.

The elements in a Tuple can be numbers, strings, tuples or arrays.

Use this function to construct a tuple for accessing instances of AMPL entities indexed over 2 or more index sets at least one of which is two-dimensional.

For example, accessing the AMPL entity:

var x{{(1,2)}, {'a'}};

can be achieved either via:

Variable x = ampl.getVariable("x");
x.get(1, 2, "a");

or, using this function, as:

Variable x = ampl.getVariable("x");
Tuple t = new Tuple(1, 2);
x.get(Tuple.join(t, "a"));

The very same way, the elements of the tuple created by:

t = Tuple.join(new Object[] { 2, 3 }, 4, "b";);

will be equivalent to

t = new Tuple(2, 3, 4, "b").

or, by joining tuples:

Tuple A = new Tuple(2, 3);
Tuple B = Tuple.join(A, A);

is equivalent to:

Tuple B = new Tuple(2, 3, 2, 3);

Note that to conform with the AMPL type system all basic Java numeric types are converted to double, as AMPL supports only one numeric type (see Tuple.Tuple for more information).

size

public int size()

Returns the number of elements in this tuple.

subtuple

public Tuple subtuple(int from, int to)

Returns a tuple containing the specified range of elements from this tuple.

Parameters:
  • from
    • the initial index of the range to be copied, inclusive
  • to
    • the final index of the range to be copied, exclusive. (This index may be equal to size.)
Throws:

toString

public String toString()

Returns a string of the form (t1,t2,t3) where t1, t2, t3 are the elements of the tuple

toStringNoBrackets

String toStringNoBrackets()

Returns a string of the form t1,t2,t3 where t1, t2, t3 are the elements of the tuple

toStringSpaceSeparated

String toStringSpaceSeparated()

Returns a string like e1 e2 e3, where the strings are in quotes