AMI supports a set of different datatypes and it can handle these types within all defined functions.
<varname> = <any AMI datatype>
i = x .. y # running variable from value x to y
[<a1>,<a2>,...,<an>] # row vector [[<a1>][<a2>][...][<an>]] # column vector
[[<a11>,<a12>,...,<a1n>] # matrix definition [<a21>,<a22>,...,<a2n>] # within AMI [ ... ] [<am1>,<am2>,...,<amn>]]A single value of a vector or matrix can be accessed using the index written style supported by the model description language of AMI, shown in the following examples.
# EXAMPLE 1:
var1 = A[1]; # variable var1 represents the first
# value of the vector A
# EXAMPLE 2:
i = 1..5;
var2[i] = A[i+1]; # variable var2 is a vector of size 1x5
# with the values of vector A[2] to A[6];
# EXAMPLE 3:
i = 1..5;
f(x,y) = x+y;
var3[i] = f(A[i],B[i+1]);
# variable var3 is a vector of size 1x5
# with the sum of A[1]+B[2] to A[5]+B[6];
#EXAMPLE 4:
var4 = (A.t0 - A.t1)/(t.t0 - t.t1)
# variable var4 is a vector of size 1x6
# holding the discretized first order
# derivatives in time for quantity A