Другой способ построения арифметических выражений - применение функций в выражениях. Ссылка на функцию состоит из имени, за которым через запятую следует в скобках аргумент или список аргументов функции. Арифметический аргумент может быть любым арифметическим выражением:
min (T,20) abs(sum{i in ORIG} supply[i] - sum{j in DEST} demand[j]) sqrt((tan[j] - tan[k])^2)
Ниже в таблице перечислены стандартные арифметические функции AMPL:
abs(x) acos(x) acosh(x) alias(v) asin(x) asinh(x) atan(x) atan2(y,x) atanh(x) ceil(x) ctime() ctime(t) cos(x) exp(x) floor(x) log(x) log10(x) max(x, y, ...) min(x, y, ...) sin(x) sinh(x) sqrt(x) tan(x) tanh(x) time() trunc(x, n) trunc(x) |
абсолютное значение |x| cos^-1(x) cosh^-1(x) псевдоним модели объекта v sin^-1(x) sinh^-1(x) tan^-1(x) tan^-1(y/x) tanh^-1(x) ближайшее верхнее целое x текущее время как строка преобразование времени t в строку косинус числа x експонента ближайшее нижнее целое x логарифм (x) десятичный логарифм(x) максимум из (2 или более аргументов) minimum из (2 или более аргументов) синус гиперболический синус корень тангенс гиперболический тангенс текущее время в секундах усечение х до n цифр после запятой усечение х до целого числа |
Таблица 1: Встроенные функции AMPL
За исключением min и max, имена любой из этих функций могут быть переопределены. Однако при этом, их первоначальное значение становится недоступным. Например, модель может объявить параметр с именем tan, как в последнем примере выше, но затем мы не сможем ссылаться на функцию tan.
Функция alias принимает в качестве аргумента имя объекта модели и возвращает её псевдоним.