// Emacs -*- C++ -*-

// Machine generated include file, do not modify.


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


//  $Log:	uchar-operations.desc,v $
//  Revision 1.3  93/05/27  11:41:17  thoth
//  Copyright Notices
//  
//  Revision 1.2  93/05/18  21:45:40  thoth
//  New reductions to bring ucharDI up to speed.
//  
//  Revision 1.1  93/03/18  11:25:21  thoth
//  Initial revision
//  
//binary pointwise commutative operator+ I(u_char) I(u_char) I(u_char)
friend IA_UcharDiscreteImage operator+(const IA_UcharDiscreteImage &,const IA_UcharDiscreteImage &);

//binary pointwise commutative operator+ I(u_char) int I(u_char)
friend IA_UcharDiscreteImage operator+(const IA_UcharDiscreteImage &,int);
friend IA_UcharDiscreteImage operator+(int lhs,const IA_UcharDiscreteImage & rhs) {
    return rhs+lhs;
}

//pointwise operator+= I(u_char) I(u_char)
IA_UcharDiscreteImage & operator+=(const IA_UcharDiscreteImage & arg) {
    return (*this) = (*this) + (arg);
}

//pointwise operator+= I(u_char) int
IA_UcharDiscreteImage & operator+=(int arg) {
    return (*this) = (*this) + (arg);
}

//binary pointwise non-commutative operator- I(u_char) I(u_char) I(u_char)
friend IA_UcharDiscreteImage operator-(const IA_UcharDiscreteImage &,const IA_UcharDiscreteImage &);

//binary pointwise non-commutative operator- I(u_char) int I(u_char)
friend IA_UcharDiscreteImage operator-(const IA_UcharDiscreteImage &,int);

//binary pointwise non-commutative operator- int I(u_char) I(u_char)
friend IA_UcharDiscreteImage operator-(int,const IA_UcharDiscreteImage &);

//unary pointwise operator- I(u_char) I(u_char)
friend IA_UcharDiscreteImage operator-(const IA_UcharDiscreteImage & arg);

//pointwise operator-= I(u_char) I(u_char)
IA_UcharDiscreteImage & operator-=(const IA_UcharDiscreteImage & arg) {
    return (*this) = (*this) - (arg);
}

//pointwise operator-= I(u_char) int
IA_UcharDiscreteImage & operator-=(int arg) {
    return (*this) = (*this) - (arg);
}

//binary pointwise commutative operator* I(u_char) I(u_char) I(u_char)
friend IA_UcharDiscreteImage operator*(const IA_UcharDiscreteImage &,const IA_UcharDiscreteImage &);

//binary pointwise commutative operator* I(u_char) int I(u_char)
friend IA_UcharDiscreteImage operator*(const IA_UcharDiscreteImage &,int);
friend IA_UcharDiscreteImage operator*(int lhs,const IA_UcharDiscreteImage & rhs) {
    return rhs*lhs;
}

//pointwise operator*= I(u_char) I(u_char)
IA_UcharDiscreteImage & operator*=(const IA_UcharDiscreteImage & arg) {
    return (*this) = (*this) * (arg);
}

//pointwise operator*= I(u_char) int
IA_UcharDiscreteImage & operator*=(int arg) {
    return (*this) = (*this) * (arg);
}

//binary pointwise non-commutative operator/ I(u_char) I(u_char) I(u_char)
friend IA_UcharDiscreteImage operator/(const IA_UcharDiscreteImage &,const IA_UcharDiscreteImage &);

//binary pointwise non-commutative operator/ I(u_char) int I(u_char)
friend IA_UcharDiscreteImage operator/(const IA_UcharDiscreteImage &,int);

//binary pointwise non-commutative operator/ int I(u_char) I(u_char)
friend IA_UcharDiscreteImage operator/(int,const IA_UcharDiscreteImage &);

//pointwise operator/= I(u_char) I(u_char)
IA_UcharDiscreteImage & operator/=(const IA_UcharDiscreteImage & arg) {
    return (*this) = (*this) / (arg);
}

//pointwise operator/= I(u_char) int
IA_UcharDiscreteImage & operator/=(int arg) {
    return (*this) = (*this) / (arg);
}

//binary pointwise non-commutative operator% I(u_char) I(u_char) I(u_char)
friend IA_UcharDiscreteImage operator%(const IA_UcharDiscreteImage &,const IA_UcharDiscreteImage &);

//binary pointwise non-commutative operator% I(u_char) int I(u_char)
friend IA_UcharDiscreteImage operator%(const IA_UcharDiscreteImage &,int);

//binary pointwise non-commutative operator% int I(u_char) I(u_char)
friend IA_UcharDiscreteImage operator%(int,const IA_UcharDiscreteImage &);

//pointwise operator%= I(u_char) I(u_char)
IA_UcharDiscreteImage & operator%=(const IA_UcharDiscreteImage & arg) {
    return (*this) = (*this) % (arg);
}

//pointwise operator%= I(u_char) int
IA_UcharDiscreteImage & operator%=(int arg) {
    return (*this) = (*this) % (arg);
}

//binary pointwise commutative operator& I(u_char) I(u_char) I(u_char)
friend IA_UcharDiscreteImage operator&(const IA_UcharDiscreteImage &,const IA_UcharDiscreteImage &);

//binary pointwise commutative operator& I(u_char) int I(u_char)
friend IA_UcharDiscreteImage operator&(const IA_UcharDiscreteImage &,int);
friend IA_UcharDiscreteImage operator&(int lhs,const IA_UcharDiscreteImage & rhs) {
    return rhs&lhs;
}

//pointwise operator&= I(u_char) I(u_char)
IA_UcharDiscreteImage & operator&=(const IA_UcharDiscreteImage & arg) {
    return (*this) = (*this) & (arg);
}

//pointwise operator&= I(u_char) int
IA_UcharDiscreteImage & operator&=(int arg) {
    return (*this) = (*this) & (arg);
}

//binary pointwise commutative operator| I(u_char) I(u_char) I(u_char)
friend IA_UcharDiscreteImage operator|(const IA_UcharDiscreteImage &,const IA_UcharDiscreteImage &);

//binary pointwise commutative operator| I(u_char) int I(u_char)
friend IA_UcharDiscreteImage operator|(const IA_UcharDiscreteImage &,int);
friend IA_UcharDiscreteImage operator|(int lhs,const IA_UcharDiscreteImage & rhs) {
    return rhs|lhs;
}

//pointwise operator|= I(u_char) I(u_char)
IA_UcharDiscreteImage & operator|=(const IA_UcharDiscreteImage & arg) {
    return (*this) = (*this) | (arg);
}

//pointwise operator|= I(u_char) int
IA_UcharDiscreteImage & operator|=(int arg) {
    return (*this) = (*this) | (arg);
}

//binary pointwise commutative operator^ I(u_char) I(u_char) I(u_char)
friend IA_UcharDiscreteImage operator^(const IA_UcharDiscreteImage &,const IA_UcharDiscreteImage &);

//binary pointwise commutative operator^ I(u_char) int I(u_char)
friend IA_UcharDiscreteImage operator^(const IA_UcharDiscreteImage &,int);
friend IA_UcharDiscreteImage operator^(int lhs,const IA_UcharDiscreteImage & rhs) {
    return rhs^lhs;
}

//pointwise operator^= I(u_char) I(u_char)
IA_UcharDiscreteImage & operator^=(const IA_UcharDiscreteImage & arg) {
    return (*this) = (*this) ^ (arg);
}

//pointwise operator^= I(u_char) int
IA_UcharDiscreteImage & operator^=(int arg) {
    return (*this) = (*this) ^ (arg);
}

//binary pointwise commutative operator<< I(u_char) I(u_char) I(u_char)
friend IA_UcharDiscreteImage operator<<(const IA_UcharDiscreteImage &,const IA_UcharDiscreteImage &);

//binary pointwise commutative operator<< I(u_char) int I(u_char)
friend IA_UcharDiscreteImage operator<<(const IA_UcharDiscreteImage &,int);
friend IA_UcharDiscreteImage operator<<(int lhs,const IA_UcharDiscreteImage & rhs) {
    return rhs<<lhs;
}

//pointwise operator<<= I(u_char) I(u_char)
IA_UcharDiscreteImage & operator<<=(const IA_UcharDiscreteImage & arg) {
    return (*this) = (*this) << (arg);
}

//pointwise operator<<= I(u_char) int
IA_UcharDiscreteImage & operator<<=(int arg) {
    return (*this) = (*this) << (arg);
}

//binary pointwise commutative operator>> I(u_char) I(u_char) I(u_char)
friend IA_UcharDiscreteImage operator>>(const IA_UcharDiscreteImage &,const IA_UcharDiscreteImage &);

//binary pointwise commutative operator>> I(u_char) int I(u_char)
friend IA_UcharDiscreteImage operator>>(const IA_UcharDiscreteImage &,int);
friend IA_UcharDiscreteImage operator>>(int lhs,const IA_UcharDiscreteImage & rhs) {
    return rhs>>lhs;
}

//pointwise operator>>= I(u_char) I(u_char)
IA_UcharDiscreteImage & operator>>=(const IA_UcharDiscreteImage & arg) {
    return (*this) = (*this) >> (arg);
}

//pointwise operator>>= I(u_char) int
IA_UcharDiscreteImage & operator>>=(int arg) {
    return (*this) = (*this) >> (arg);
}

//unary pointwise operator~ I(u_char) I(u_char)
friend IA_UcharDiscreteImage operator~(const IA_UcharDiscreteImage & arg);

//binary pointwise commutative operator&& I(u_char) I(u_char) I(u_char)
friend IA_UcharDiscreteImage operator&&(const IA_UcharDiscreteImage &,const IA_UcharDiscreteImage &);

//binary pointwise commutative operator&& I(u_char) int I(u_char)
friend IA_UcharDiscreteImage operator&&(const IA_UcharDiscreteImage &,int);
friend IA_UcharDiscreteImage operator&&(int lhs,const IA_UcharDiscreteImage & rhs) {
    return rhs&&lhs;
}

//binary pointwise commutative operator|| I(u_char) I(u_char) I(u_char)
friend IA_UcharDiscreteImage operator||(const IA_UcharDiscreteImage &,const IA_UcharDiscreteImage &);

//binary pointwise commutative operator|| I(u_char) int I(u_char)
friend IA_UcharDiscreteImage operator||(const IA_UcharDiscreteImage &,int);
friend IA_UcharDiscreteImage operator||(int lhs,const IA_UcharDiscreteImage & rhs) {
    return rhs||lhs;
}

//unary pointwise operator! I(u_char) I(u_char)
friend IA_UcharDiscreteImage operator!(const IA_UcharDiscreteImage & arg);

//binary strictrel non-commutative operator< I(u_char) I(u_char) int
friend int operator<(const IA_UcharDiscreteImage &,const IA_UcharDiscreteImage &);

//binary strictrel non-commutative operator< I(u_char) int int
friend int operator<(const IA_UcharDiscreteImage &,int);

//binary strictrel non-commutative operator< int I(u_char) int
friend int operator<(int,const IA_UcharDiscreteImage &);

//binary strictrel non-commutative operator<= I(u_char) I(u_char) int
friend int operator<=(const IA_UcharDiscreteImage &,const IA_UcharDiscreteImage &);

//binary strictrel non-commutative operator<= I(u_char) int int
friend int operator<=(const IA_UcharDiscreteImage &,int);

//binary strictrel non-commutative operator<= int I(u_char) int
friend int operator<=(int,const IA_UcharDiscreteImage &);

//binary strictrel commutative operator== I(u_char) I(u_char) int
friend int operator==(const IA_UcharDiscreteImage &,const IA_UcharDiscreteImage &);

//binary strictrel commutative operator== I(u_char) int int
friend int operator==(const IA_UcharDiscreteImage &,int);
friend int operator==(int lhs,const IA_UcharDiscreteImage & rhs) {
    return rhs==lhs;
}

//binary strictrel commutative strict_ne subop=operator!= I(u_char) I(u_char) int
friend int strict_ne(const IA_UcharDiscreteImage &,const IA_UcharDiscreteImage &);

//binary strictrel commutative strict_ne subop=operator!= I(u_char) int int
friend int strict_ne(const IA_UcharDiscreteImage &,int);
friend int strict_ne(int lhs,const IA_UcharDiscreteImage & rhs) {
    return strict_ne(rhs,lhs);
}

//binary strictrel non-commutative operator>= I(u_char) I(u_char) int
friend int operator>=(const IA_UcharDiscreteImage &,const IA_UcharDiscreteImage &);

//binary strictrel non-commutative operator>= I(u_char) int int
friend int operator>=(const IA_UcharDiscreteImage &,int);

//binary strictrel non-commutative operator>= int I(u_char) int
friend int operator>=(int,const IA_UcharDiscreteImage &);

//binary strictrel non-commutative operator> I(u_char) I(u_char) int
friend int operator>(const IA_UcharDiscreteImage &,const IA_UcharDiscreteImage &);

//binary strictrel non-commutative operator> I(u_char) int int
friend int operator>(const IA_UcharDiscreteImage &,int);

//binary strictrel non-commutative operator> int I(u_char) int
friend int operator>(int,const IA_UcharDiscreteImage &);

//binary pointwise non-commutative pwise_lt subop=operator< I(u_char) I(u_char) I(u_char)
friend IA_UcharDiscreteImage pwise_lt(const IA_UcharDiscreteImage &,const IA_UcharDiscreteImage &);

//binary pointwise non-commutative pwise_lt subop=operator< I(u_char) int I(u_char)
friend IA_UcharDiscreteImage pwise_lt(const IA_UcharDiscreteImage &,int);

//binary pointwise non-commutative pwise_lt subop=operator< int I(u_char) I(u_char)
friend IA_UcharDiscreteImage pwise_lt(int,const IA_UcharDiscreteImage &);

//binary pointwise non-commutative pwise_le subop=operator<= I(u_char) I(u_char) I(u_char)
friend IA_UcharDiscreteImage pwise_le(const IA_UcharDiscreteImage &,const IA_UcharDiscreteImage &);

//binary pointwise non-commutative pwise_le subop=operator<= I(u_char) int I(u_char)
friend IA_UcharDiscreteImage pwise_le(const IA_UcharDiscreteImage &,int);

//binary pointwise non-commutative pwise_le subop=operator<= int I(u_char) I(u_char)
friend IA_UcharDiscreteImage pwise_le(int,const IA_UcharDiscreteImage &);

//binary pointwise commutative pwise_eq subop=operator== I(u_char) I(u_char) I(u_char)
friend IA_UcharDiscreteImage pwise_eq(const IA_UcharDiscreteImage &,const IA_UcharDiscreteImage &);

//binary pointwise commutative pwise_eq subop=operator== I(u_char) int I(u_char)
friend IA_UcharDiscreteImage pwise_eq(const IA_UcharDiscreteImage &,int);
friend IA_UcharDiscreteImage pwise_eq(int lhs,const IA_UcharDiscreteImage & rhs) {
    return pwise_eq(rhs,lhs);
}

//binary pointwise commutative pwise_ne subop=operator!= I(u_char) I(u_char) I(u_char)
friend IA_UcharDiscreteImage pwise_ne(const IA_UcharDiscreteImage &,const IA_UcharDiscreteImage &);

//binary pointwise commutative pwise_ne subop=operator!= I(u_char) int I(u_char)
friend IA_UcharDiscreteImage pwise_ne(const IA_UcharDiscreteImage &,int);
friend IA_UcharDiscreteImage pwise_ne(int lhs,const IA_UcharDiscreteImage & rhs) {
    return pwise_ne(rhs,lhs);
}

//binary pointwise non-commutative pwise_ge subop=operator>= I(u_char) I(u_char) I(u_char)
friend IA_UcharDiscreteImage pwise_ge(const IA_UcharDiscreteImage &,const IA_UcharDiscreteImage &);

//binary pointwise non-commutative pwise_ge subop=operator>= I(u_char) int I(u_char)
friend IA_UcharDiscreteImage pwise_ge(const IA_UcharDiscreteImage &,int);

//binary pointwise non-commutative pwise_ge subop=operator>= int I(u_char) I(u_char)
friend IA_UcharDiscreteImage pwise_ge(int,const IA_UcharDiscreteImage &);

//binary pointwise non-commutative pwise_gt subop=operator> I(u_char) I(u_char) I(u_char)
friend IA_UcharDiscreteImage pwise_gt(const IA_UcharDiscreteImage &,const IA_UcharDiscreteImage &);

//binary pointwise non-commutative pwise_gt subop=operator> I(u_char) int I(u_char)
friend IA_UcharDiscreteImage pwise_gt(const IA_UcharDiscreteImage &,int);

//binary pointwise non-commutative pwise_gt subop=operator> int I(u_char) I(u_char)
friend IA_UcharDiscreteImage pwise_gt(int,const IA_UcharDiscreteImage &);

//reduction reduce_plus subop=operator+ int I(u_char)
friend int reduce_plus(const IA_UcharDiscreteImage &);

//reduction max subop=max int I(u_char)
friend int max(const IA_UcharDiscreteImage &);

//reduction min subop=min int I(u_char)
friend int min(const IA_UcharDiscreteImage &);

