max/3

Module: builtins

max/3 — Returns the maximum of results of evaluating two arithmetic Exprs
min/3 — Returns the minimum of results of evaluating two arithmetic Exprs
maximum/2 — Returns the maximum of the evaluations of the expressions on ExprList
minimum/2 — Returns the minimum of the evaluations of the expressions on ExprList
sumlist/2 — Returns the sum of the evaluations of the numbers on ExprList
prodlist/2 — Returns the product of the evaluations of the numbers on ExprList
sum_squares/2 — Returns the sum of the squares of the evaluations of the numbers on ExprList
sum_square_diffs/3 — Returns the sum of squares of differences of XList,YList
max_vector/3 — Returns the result of iteratively taking the max of Left,Right
min_vector/3 — Returns the result of iteratively taking the min of Left,Right

FORMS

max(Expr1,Expr2,NumResult)

min(Expr1,Expr2,NumResult)

maximum(ExprList, NumResult)

minimum(ExprList, NumResult)

sumlist(ExprList, NumResult)

prodlist(ExprList, NumResult)

sum_squares(ExprList, NumResult)

sum_square_diffs(XList, YList, NumResult)

max_vector(Left, Right, VectorResult)

min_vector(Left, Right, VectorResult)

DESCRIPTION

max/3 If Expr1 and Expr2 are arithmetic expressions which are ground at the time of evaluation, then NumResult is the maximum of the results of evaluation of Expr1 and Expr2 with is/2.

min/3 If Expr1 and Expr2 are arithmetic expressions which are ground at the time of evaluation, then NumResult is the minimum of the results of evaluation of Expr1 and Expr2 with is/2.

maximum/2 If ExprList is a list of arithmetic expressions which are all ground at the time of evaluation, then NumResult is the maximum of the evaluations of all the expressions on ExprList. If ExprList = [], then NumResult = -0inf.

minimum/2 If ExprList is a list of arithmetic expressions which are all ground at the time of evaluation, then NumResult is the minimum of the evaluations of all the expressions on ExprList. If ExprList = [], then NumResult = 0inf.

sumlist/2 If ExprList is a list of arithmetic expressions which are all ground at the time of evaluation, then NumResult is the sum of the evaluations of all the numbers on ExprList. If ExprList = [], then NumResult = 0.

prodlist/2 If ExprList is a list of arithmetic expressions which are all ground at the time of evaluation, then NumResult is the product of the evaluations of all the numbers on ExprList. If ExprList = [], then NumResult = 1.

sum_squares/2 If ExprList is a list of arithmetic expressions which are all ground at the time of evaluation, then NumResult is the sum of the squares of the evaluations of all the numbers on ExprList. If ExprList = [], then NumResult = 0.

sum_square_diffs/3 If XList and YList are both lists of numbers and are of the same length, then NumResult is the sum of the squares of the pairwise differences of XList and YList; that is NumResult = (X1-Y1)^2 + (X2-Y2)^2 + … If XList = YList = [], then NumResult = 0.

max_vector/3 If Left and Right are both lists of numbers which are the same length and are ground at the time evaluation, then VectorResult is the list of numbers of the same length as Left,Right, and such that the nth element of VectorResult is the max of the nth elements of Left and Right, respectively.

min_vector/3 If Left and Right are both lists of numbers which are the same length and are ground at the time evaluation, then VectorResult is the list of numbers of the same length as Left,Right, and such that the nth element of VectorResult is the min of the nth elements of Left and Right, respectively.

EXAMPLES

max/3


?- max(3,92,M1), max(3,50-92,M2), max(-6,-7*9,M3), max(23.89, 23.87,M4).

M1=92
M2=3
M3=-6
M4=23.89

min/3


?- min(3,92,M1), min(3*1,-0-92,M2), min(-6*(-5),-9,M3), min(23.89, 23.87,M4).

M1=3
M2=-92
M3=-9
M4=23.87

maximum/2


?- maximum([3.4, 2+3, -6*1.78, 123.4456], M1),
   maximum([-3.4, -5, -6.78, -123.4456], M2).

M1=123.4456
M2=-3.4

minimum/2


?- minimum([3.4, 5*5, -6*1.78, 9+123.4456], M1),
   minimum([-3.4+9, -5*6, -6.78, -123.4456], M2).

M1=-6*1.78
M2=-123.4456

sumlist/2


?- sumlist([3.4, 5*5, -6*1.78, 9+123.4456], M1),
   sumlist([-3.4+9, -5*6, -6.78, -123.4456], M2).

M1=150.1656
M2=-154.6256

prodlist/2


?- prodlist([3.4, 5*5, -6*1.78, 9+123.4456], M1),
   prodlist([-3.4+9, -5*6, -6.78, -123.4456], M2).

M1=-120234.1157
M2=-140609.4762

sum_squares/2


?- sum_squares([3,4], M1), sum_squares([88 + 0.98, 4.3*6.77], M2).

M1=25
M2=8764.890721

sum_square_diffs/3


?- XList = [4.3*1, 4+20.88], YList = [5.12+2.3, 3*20.44],
   sum_square_diffs(XList, YList, Result).

XList=[4.3*1,4+20.88]
YList=[5.12+2.3,3*20.44]
Result=1337.608

max_vector/3


?- Left = [3, 4.1 + 0.4, 88.9], Right = [0.6 * 2, 8.44, 100.9],
   max_vector(Left, Right, Result).

Left=[3,4.1+0.4,88.9] 
Right=[0.6*2,8.44,100.9] 
Result=[3,8.44,100.9]

min_vector/3


?- Left = [3, 4.1 + 0.4, 88.9], Right = [0.6 * 2, 8.44, 100.9],
   min_vector(Left, Right, Result).

Left=[3,4.1+0.4,88.9]
Right=[0.6*2,8.44,100.9]
Result=[1.2,4.5,88.9]