#
#	Copyright 1993, Center for Computer Vision and Visualization,
#	University of Florida.  All rights reserved.
#

# Integer operations for the Int Discrete Image

conversion I(int) I(u_char)
unary pointwise to_uchar subop=u_char I(u_char) I(int)


binary pointwise commutative operator+ I(int) I(int) I(int)
binary pointwise commutative operator+ I(int) int I(int)
pointwise operator+= I(int) I(int)
pointwise operator+= I(int) int

binary pointwise non-commutative operator- I(int) I(int) I(int)
binary pointwise non-commutative operator- I(int) int I(int)
binary pointwise non-commutative operator- int I(int) I(int)
unary pointwise operator- I(int) I(int)
pointwise operator-= I(int) I(int)
pointwise operator-= I(int) int

binary pointwise commutative operator* I(int) I(int) I(int)
binary pointwise commutative operator* I(int) int I(int)
pointwise operator*= I(int) I(int)
pointwise operator*= I(int) int

binary pointwise non-commutative operator/ I(int) I(int) I(int)
binary pointwise non-commutative operator/ I(int) int I(int)
binary pointwise non-commutative operator/ int I(int) I(int)
pointwise operator/= I(int) I(int)
pointwise operator/= I(int) int



binary pointwise non-commutative operator% I(int) I(int) I(int)
binary pointwise non-commutative operator% I(int) int I(int)
binary pointwise non-commutative operator% int I(int) I(int)
pointwise operator%= I(int) I(int)
pointwise operator%= I(int) int



binary pointwise commutative operator& I(int) I(int) I(int)
binary pointwise commutative operator& I(int) int I(int)
pointwise operator&= I(int) I(int)
pointwise operator&= I(int) int

binary pointwise commutative operator| I(int) I(int) I(int)
binary pointwise commutative operator| I(int) int I(int)
pointwise operator|= I(int) I(int)
pointwise operator|= I(int) int

binary pointwise commutative operator^ I(int) I(int) I(int)
binary pointwise commutative operator^ I(int) int I(int)
pointwise operator^= I(int) I(int)
pointwise operator^= I(int) int

binary pointwise commutative operator<< I(int) I(int) I(int)
binary pointwise commutative operator<< I(int) int I(int)
pointwise operator<<= I(int) I(int)
pointwise operator<<= I(int) int

binary pointwise commutative operator>> I(int) I(int) I(int)
binary pointwise commutative operator>> I(int) int I(int)
pointwise operator>>= I(int) I(int)
pointwise operator>>= I(int) int

unary pointwise operator~ I(int) I(int)



binary pointwise commutative operator&& I(int) I(int) I(int)
binary pointwise commutative operator&& I(int) int I(int)

binary pointwise commutative operator|| I(int) I(int) I(int)
binary pointwise commutative operator|| I(int) int I(int)

unary pointwise operator! I(int) I(int)



binary strictrel non-commutative operator< I(int) I(int) int
binary strictrel non-commutative operator< I(int) int int
binary strictrel non-commutative operator< int I(int) int

binary strictrel non-commutative operator<= I(int) I(int) int
binary strictrel non-commutative operator<= I(int) int int
binary strictrel non-commutative operator<= int I(int) int

binary strictrel commutative operator== I(int) I(int) int
binary strictrel commutative operator== I(int) int int

binary strictrel commutative strict_ne subop=operator!= I(int) I(int) int
binary strictrel commutative strict_ne subop=operator!= I(int) int int

binary strictrel non-commutative operator>= I(int) I(int) int
binary strictrel non-commutative operator>= I(int) int int
binary strictrel non-commutative operator>= int I(int) int

binary strictrel non-commutative operator> I(int) I(int) int
binary strictrel non-commutative operator> I(int) int int
binary strictrel non-commutative operator> int I(int) int

binary pointwise non-commutative pwise_lt subop=operator< I(int) I(int) I(int)
binary pointwise non-commutative pwise_lt subop=operator< I(int) int I(int)
binary pointwise non-commutative pwise_lt subop=operator< int I(int) I(int)

binary pointwise non-commutative pwise_le subop=operator<= I(int) I(int) I(int)
binary pointwise non-commutative pwise_le subop=operator<= I(int) int I(int)
binary pointwise non-commutative pwise_le subop=operator<= int I(int) I(int)

binary pointwise commutative pwise_eq subop=operator== I(int) I(int) I(int)
binary pointwise commutative pwise_eq subop=operator== I(int) int I(int)

binary pointwise commutative pwise_ne subop=operator!= I(int) I(int) I(int)
binary pointwise commutative pwise_ne subop=operator!= I(int) int I(int)

binary pointwise non-commutative pwise_ge subop=operator>= I(int) I(int) I(int)
binary pointwise non-commutative pwise_ge subop=operator>= I(int) int I(int)
binary pointwise non-commutative pwise_ge subop=operator>= int I(int) I(int)

binary pointwise non-commutative pwise_gt subop=operator> I(int) I(int) I(int)
binary pointwise non-commutative pwise_gt subop=operator> I(int) int I(int)
binary pointwise non-commutative pwise_gt subop=operator> int I(int) I(int)



unary pointwise isqrt I(int) I(int)
unary pointwise sqr I(int) I(int)
binary pointwise commutative max I(int) I(int) I(int)
binary pointwise commutative max I(int) int I(int)
binary pointwise commutative min I(int) I(int) I(int)
binary pointwise commutative min I(int) int I(int)

reduction reduce_plus subop=operator+ int I(int)
reduction max subop=max int I(int)
reduction min subop=min int I(int)
