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

// Machine generated include file, do not modify.

//prefix
//filename UIO-cnBit.c
//constructor I(u_char) I(IA_Bit)
IA_Image(const IA_CoreImage<IA_Point<int>,IA_Bit> &);

//filename UIO-cvcomplex.c
//conversion I(complex) I(u_char)
operator IA_CoreImage<IA_Point<int>, complex>( );

//filename UIO-cvfloat.c
//conversion I(float) I(u_char)
operator IA_CoreImage<IA_Point<int>, float>( );

//filename UIO-cvint.c
//conversion I(int) I(u_char)
operator IA_CoreImage<IA_Point<int>, int>( );

//filename UIO-to_bit.c
//unary pointwise to_bit subop=IA_Bit I(IA_Bit) I(u_char)
friend IA_CoreImage<IA_Point<int>, IA_Bit> to_bit(const IA_CoreImage<IA_Point<int>,u_char> & arg);

//filename UIO-__pl.c
//binary pointwise commutative operator+ I(u_char) I(u_char) I(u_char)
friend IA_Image<IA_Point<int>, u_char> operator+(const IA_CoreImage<IA_Point<int>,u_char> &,const IA_CoreImage<IA_Point<int>,u_char> &);

//binary pointwise commutative operator+ I(u_char) I(u_char) int
friend IA_Image<IA_Point<int>, u_char> operator+(const IA_CoreImage<IA_Point<int>,u_char> &,int);
friend IA_Image<IA_Point<int>, u_char> operator+(int lhs,const IA_CoreImage<IA_Point<int>,u_char> & rhs) {
    return rhs+lhs;
}

//pointwise operator+= I(u_char) I(u_char)
IA_Image<IA_Point<int>, u_char> & operator+=(const IA_CoreImage<IA_Point<int>,u_char> & arg) {
    return (*this) = (*this) + (arg);
}

//pointwise operator+= I(u_char) int
IA_Image<IA_Point<int>, u_char> & operator+=(int arg) {
    return (*this) = (*this) + (arg);
}

//filename UIO-__mi.c
//binary pointwise non-commutative operator- I(u_char) I(u_char) I(u_char)
friend IA_Image<IA_Point<int>, u_char> operator-(const IA_CoreImage<IA_Point<int>,u_char> &,const IA_CoreImage<IA_Point<int>,u_char> &);

//binary pointwise non-commutative operator- I(u_char) I(u_char) int
friend IA_Image<IA_Point<int>, u_char> operator-(const IA_CoreImage<IA_Point<int>,u_char> &,int);

//binary pointwise non-commutative operator- I(u_char) int I(u_char)
friend IA_Image<IA_Point<int>, u_char> operator-(int,const IA_CoreImage<IA_Point<int>,u_char> &);

//unary pointwise operator- I(u_char) I(u_char)
friend IA_Image<IA_Point<int>, u_char> operator-(const IA_CoreImage<IA_Point<int>,u_char> & arg);

//pointwise operator-= I(u_char) I(u_char)
IA_Image<IA_Point<int>, u_char> & operator-=(const IA_CoreImage<IA_Point<int>,u_char> & arg) {
    return (*this) = (*this) - (arg);
}

//pointwise operator-= I(u_char) int
IA_Image<IA_Point<int>, u_char> & operator-=(int arg) {
    return (*this) = (*this) - (arg);
}

//filename UIO-__ml.c
//binary pointwise commutative operator* I(u_char) I(u_char) I(u_char)
friend IA_Image<IA_Point<int>, u_char> operator*(const IA_CoreImage<IA_Point<int>,u_char> &,const IA_CoreImage<IA_Point<int>,u_char> &);

//binary pointwise commutative operator* I(u_char) I(u_char) int
friend IA_Image<IA_Point<int>, u_char> operator*(const IA_CoreImage<IA_Point<int>,u_char> &,int);
friend IA_Image<IA_Point<int>, u_char> operator*(int lhs,const IA_CoreImage<IA_Point<int>,u_char> & rhs) {
    return rhs*lhs;
}

//pointwise operator*= I(u_char) I(u_char)
IA_Image<IA_Point<int>, u_char> & operator*=(const IA_CoreImage<IA_Point<int>,u_char> & arg) {
    return (*this) = (*this) * (arg);
}

//pointwise operator*= I(u_char) int
IA_Image<IA_Point<int>, u_char> & operator*=(int arg) {
    return (*this) = (*this) * (arg);
}

// filename UIO-__mlBit.c
// binary pointwise commutative operator* I(u_char) I(u_char) I(IA_Bit)
// binary pointwise commutative operator* I(u_char) u_char I(IA_Bit)
// pointwise operator*= I(u_char) I(IA_Bit)
//filename UIO-__dv.c
//binary pointwise non-commutative operator/ I(u_char) I(u_char) I(u_char)
friend IA_Image<IA_Point<int>, u_char> operator/(const IA_CoreImage<IA_Point<int>,u_char> &,const IA_CoreImage<IA_Point<int>,u_char> &);

//binary pointwise non-commutative operator/ I(u_char) I(u_char) int
friend IA_Image<IA_Point<int>, u_char> operator/(const IA_CoreImage<IA_Point<int>,u_char> &,int);

//binary pointwise non-commutative operator/ I(u_char) int I(u_char)
friend IA_Image<IA_Point<int>, u_char> operator/(int,const IA_CoreImage<IA_Point<int>,u_char> &);

//pointwise operator/= I(u_char) I(u_char)
IA_Image<IA_Point<int>, u_char> & operator/=(const IA_CoreImage<IA_Point<int>,u_char> & arg) {
    return (*this) = (*this) / (arg);
}

//pointwise operator/= I(u_char) int
IA_Image<IA_Point<int>, u_char> & operator/=(int arg) {
    return (*this) = (*this) / (arg);
}

//filename UIO-__md.c
//binary pointwise non-commutative operator% I(u_char) I(u_char) I(u_char)
friend IA_Image<IA_Point<int>, u_char> operator%(const IA_CoreImage<IA_Point<int>,u_char> &,const IA_CoreImage<IA_Point<int>,u_char> &);

//binary pointwise non-commutative operator% I(u_char) I(u_char) int
friend IA_Image<IA_Point<int>, u_char> operator%(const IA_CoreImage<IA_Point<int>,u_char> &,int);

//binary pointwise non-commutative operator% I(u_char) int I(u_char)
friend IA_Image<IA_Point<int>, u_char> operator%(int,const IA_CoreImage<IA_Point<int>,u_char> &);

//pointwise operator%= I(u_char) I(u_char)
IA_Image<IA_Point<int>, u_char> & operator%=(const IA_CoreImage<IA_Point<int>,u_char> & arg) {
    return (*this) = (*this) % (arg);
}

//pointwise operator%= I(u_char) int
IA_Image<IA_Point<int>, u_char> & operator%=(int arg) {
    return (*this) = (*this) % (arg);
}

//filename UIO-__ad.c
//binary pointwise commutative operator& I(u_char) I(u_char) I(u_char)
friend IA_Image<IA_Point<int>, u_char> operator&(const IA_CoreImage<IA_Point<int>,u_char> &,const IA_CoreImage<IA_Point<int>,u_char> &);

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

//pointwise operator&= I(u_char) I(u_char)
IA_Image<IA_Point<int>, u_char> & operator&=(const IA_CoreImage<IA_Point<int>,u_char> & arg) {
    return (*this) = (*this) & (arg);
}

//pointwise operator&= I(u_char) int
IA_Image<IA_Point<int>, u_char> & operator&=(int arg) {
    return (*this) = (*this) & (arg);
}

//filename UIO-__or.c
//binary pointwise commutative operator| I(u_char) I(u_char) I(u_char)
friend IA_Image<IA_Point<int>, u_char> operator|(const IA_CoreImage<IA_Point<int>,u_char> &,const IA_CoreImage<IA_Point<int>,u_char> &);

//binary pointwise commutative operator| I(u_char) I(u_char) int
friend IA_Image<IA_Point<int>, u_char> operator|(const IA_CoreImage<IA_Point<int>,u_char> &,int);
friend IA_Image<IA_Point<int>, u_char> operator|(int lhs,const IA_CoreImage<IA_Point<int>,u_char> & rhs) {
    return rhs|lhs;
}

//pointwise operator|= I(u_char) I(u_char)
IA_Image<IA_Point<int>, u_char> & operator|=(const IA_CoreImage<IA_Point<int>,u_char> & arg) {
    return (*this) = (*this) | (arg);
}

//pointwise operator|= I(u_char) int
IA_Image<IA_Point<int>, u_char> & operator|=(int arg) {
    return (*this) = (*this) | (arg);
}

//filename UIO-__er.c
//binary pointwise commutative operator^ I(u_char) I(u_char) I(u_char)
friend IA_Image<IA_Point<int>, u_char> operator^(const IA_CoreImage<IA_Point<int>,u_char> &,const IA_CoreImage<IA_Point<int>,u_char> &);

//binary pointwise commutative operator^ I(u_char) I(u_char) int
friend IA_Image<IA_Point<int>, u_char> operator^(const IA_CoreImage<IA_Point<int>,u_char> &,int);
friend IA_Image<IA_Point<int>, u_char> operator^(int lhs,const IA_CoreImage<IA_Point<int>,u_char> & rhs) {
    return rhs^lhs;
}

//pointwise operator^= I(u_char) I(u_char)
IA_Image<IA_Point<int>, u_char> & operator^=(const IA_CoreImage<IA_Point<int>,u_char> & arg) {
    return (*this) = (*this) ^ (arg);
}

//pointwise operator^= I(u_char) int
IA_Image<IA_Point<int>, u_char> & operator^=(int arg) {
    return (*this) = (*this) ^ (arg);
}

//filename UIO-__ls.c
//binary pointwise commutative operator<< I(u_char) I(u_char) I(u_char)
friend IA_Image<IA_Point<int>, u_char> operator<<(const IA_CoreImage<IA_Point<int>,u_char> &,const IA_CoreImage<IA_Point<int>,u_char> &);

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

//pointwise operator<<= I(u_char) I(u_char)
IA_Image<IA_Point<int>, u_char> & operator<<=(const IA_CoreImage<IA_Point<int>,u_char> & arg) {
    return (*this) = (*this) << (arg);
}

//pointwise operator<<= I(u_char) int
IA_Image<IA_Point<int>, u_char> & operator<<=(int arg) {
    return (*this) = (*this) << (arg);
}

//filename UIO-__rs.c
//binary pointwise commutative operator>> I(u_char) I(u_char) I(u_char)
friend IA_Image<IA_Point<int>, u_char> operator>>(const IA_CoreImage<IA_Point<int>,u_char> &,const IA_CoreImage<IA_Point<int>,u_char> &);

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

//pointwise operator>>= I(u_char) I(u_char)
IA_Image<IA_Point<int>, u_char> & operator>>=(const IA_CoreImage<IA_Point<int>,u_char> & arg) {
    return (*this) = (*this) >> (arg);
}

//pointwise operator>>= I(u_char) int
IA_Image<IA_Point<int>, u_char> & operator>>=(int arg) {
    return (*this) = (*this) >> (arg);
}

//filename UIO-__co.c
//unary pointwise operator~ I(u_char) I(u_char)
friend IA_Image<IA_Point<int>, u_char> operator~(const IA_CoreImage<IA_Point<int>,u_char> & arg);

//filename UIO-__aa.c
//binary pointwise commutative operator&& I(u_char) I(u_char) I(u_char)
friend IA_Image<IA_Point<int>, u_char> operator&&(const IA_CoreImage<IA_Point<int>,u_char> &,const IA_CoreImage<IA_Point<int>,u_char> &);

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

//filename UIO-__oo.c
//binary pointwise commutative operator|| I(u_char) I(u_char) I(u_char)
friend IA_Image<IA_Point<int>, u_char> operator||(const IA_CoreImage<IA_Point<int>,u_char> &,const IA_CoreImage<IA_Point<int>,u_char> &);

//binary pointwise commutative operator|| I(u_char) I(u_char) int
friend IA_Image<IA_Point<int>, u_char> operator||(const IA_CoreImage<IA_Point<int>,u_char> &,int);
friend IA_Image<IA_Point<int>, u_char> operator||(int lhs,const IA_CoreImage<IA_Point<int>,u_char> & rhs) {
    return rhs||lhs;
}

//filename UIO-__nt.c
//unary pointwise operator! I(u_char) I(u_char)
friend IA_Image<IA_Point<int>, u_char> operator!(const IA_CoreImage<IA_Point<int>,u_char> & arg);

//filename UIO-__lt.c
//binary strictrel non-commutative operator< int I(u_char) I(u_char)
friend int operator<(const IA_CoreImage<IA_Point<int>,u_char> &,const IA_CoreImage<IA_Point<int>,u_char> &);

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

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

//filename UIO-__le.c
//binary strictrel non-commutative operator<= int I(u_char) I(u_char)
friend int operator<=(const IA_CoreImage<IA_Point<int>,u_char> &,const IA_CoreImage<IA_Point<int>,u_char> &);

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

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

//filename UIO-__eq.c
//binary strictrel commutative operator== int I(u_char) I(u_char)
friend int operator==(const IA_CoreImage<IA_Point<int>,u_char> &,const IA_CoreImage<IA_Point<int>,u_char> &);

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

//filename UIO-strict_ne.c
//binary strictrel commutative strict_ne subop=operator!= int I(u_char) I(u_char)
friend int strict_ne(const IA_CoreImage<IA_Point<int>,u_char> &,const IA_CoreImage<IA_Point<int>,u_char> &);

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

//filename UIO-__ge.c
//binary strictrel non-commutative operator>= int I(u_char) I(u_char)
friend int operator>=(const IA_CoreImage<IA_Point<int>,u_char> &,const IA_CoreImage<IA_Point<int>,u_char> &);

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

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

//filename UIO-__gt.c
//binary strictrel non-commutative operator> int I(u_char) I(u_char)
friend int operator>(const IA_CoreImage<IA_Point<int>,u_char> &,const IA_CoreImage<IA_Point<int>,u_char> &);

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

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

//filename UIO-chi_lt.c
//binary pointwise non-commutative chi_lt subop=operator< I(IA_Bit) I(u_char) I(u_char)
friend IA_CoreImage<IA_Point<int>, IA_Bit> chi_lt(const IA_CoreImage<IA_Point<int>,u_char> &,const IA_CoreImage<IA_Point<int>,u_char> &);

//binary pointwise non-commutative chi_lt subop=operator< I(IA_Bit) I(u_char) int
friend IA_CoreImage<IA_Point<int>, IA_Bit> chi_lt(const IA_CoreImage<IA_Point<int>,u_char> &,int);

//binary pointwise non-commutative chi_lt subop=operator< I(IA_Bit) int I(u_char)
friend IA_CoreImage<IA_Point<int>, IA_Bit> chi_lt(int,const IA_CoreImage<IA_Point<int>,u_char> &);

//filename UIO-chi_le.c
//binary pointwise non-commutative chi_le subop=operator<= I(IA_Bit) I(u_char) I(u_char)
friend IA_CoreImage<IA_Point<int>, IA_Bit> chi_le(const IA_CoreImage<IA_Point<int>,u_char> &,const IA_CoreImage<IA_Point<int>,u_char> &);

//binary pointwise non-commutative chi_le subop=operator<= I(IA_Bit) I(u_char) int
friend IA_CoreImage<IA_Point<int>, IA_Bit> chi_le(const IA_CoreImage<IA_Point<int>,u_char> &,int);

//binary pointwise non-commutative chi_le subop=operator<= I(IA_Bit) int I(u_char)
friend IA_CoreImage<IA_Point<int>, IA_Bit> chi_le(int,const IA_CoreImage<IA_Point<int>,u_char> &);

//filename UIO-chi_eq.c
//binary pointwise commutative chi_eq subop=operator== I(IA_Bit) I(u_char) I(u_char)
friend IA_CoreImage<IA_Point<int>, IA_Bit> chi_eq(const IA_CoreImage<IA_Point<int>,u_char> &,const IA_CoreImage<IA_Point<int>,u_char> &);

//binary pointwise commutative chi_eq subop=operator== I(IA_Bit) I(u_char) int
friend IA_CoreImage<IA_Point<int>, IA_Bit> chi_eq(const IA_CoreImage<IA_Point<int>,u_char> &,int);
friend IA_CoreImage<IA_Point<int>, IA_Bit> chi_eq(int lhs,const IA_CoreImage<IA_Point<int>,u_char> & rhs) {
    return chi_eq(rhs,lhs);
}

//filename UIO-chi_ne.c
//binary pointwise commutative chi_ne subop=operator!= I(IA_Bit) I(u_char) I(u_char)
friend IA_CoreImage<IA_Point<int>, IA_Bit> chi_ne(const IA_CoreImage<IA_Point<int>,u_char> &,const IA_CoreImage<IA_Point<int>,u_char> &);

//binary pointwise commutative chi_ne subop=operator!= I(IA_Bit) I(u_char) int
friend IA_CoreImage<IA_Point<int>, IA_Bit> chi_ne(const IA_CoreImage<IA_Point<int>,u_char> &,int);
friend IA_CoreImage<IA_Point<int>, IA_Bit> chi_ne(int lhs,const IA_CoreImage<IA_Point<int>,u_char> & rhs) {
    return chi_ne(rhs,lhs);
}

//filename UIO-chi_ge.c
//binary pointwise non-commutative chi_ge subop=operator>= I(IA_Bit) I(u_char) I(u_char)
friend IA_CoreImage<IA_Point<int>, IA_Bit> chi_ge(const IA_CoreImage<IA_Point<int>,u_char> &,const IA_CoreImage<IA_Point<int>,u_char> &);

//binary pointwise non-commutative chi_ge subop=operator>= I(IA_Bit) I(u_char) int
friend IA_CoreImage<IA_Point<int>, IA_Bit> chi_ge(const IA_CoreImage<IA_Point<int>,u_char> &,int);

//binary pointwise non-commutative chi_ge subop=operator>= I(IA_Bit) int I(u_char)
friend IA_CoreImage<IA_Point<int>, IA_Bit> chi_ge(int,const IA_CoreImage<IA_Point<int>,u_char> &);

//filename UIO-chi_gt.c
//binary pointwise non-commutative chi_gt subop=operator> I(IA_Bit) I(u_char) I(u_char)
friend IA_CoreImage<IA_Point<int>, IA_Bit> chi_gt(const IA_CoreImage<IA_Point<int>,u_char> &,const IA_CoreImage<IA_Point<int>,u_char> &);

//binary pointwise non-commutative chi_gt subop=operator> I(IA_Bit) I(u_char) int
friend IA_CoreImage<IA_Point<int>, IA_Bit> chi_gt(const IA_CoreImage<IA_Point<int>,u_char> &,int);

//binary pointwise non-commutative chi_gt subop=operator> I(IA_Bit) int I(u_char)
friend IA_CoreImage<IA_Point<int>, IA_Bit> chi_gt(int,const IA_CoreImage<IA_Point<int>,u_char> &);

//filename UIO-minmax.c
//binary pointwise commutative max I(u_char) I(u_char) I(u_char)
friend IA_Image<IA_Point<int>, u_char> max(const IA_CoreImage<IA_Point<int>,u_char> &,const IA_CoreImage<IA_Point<int>,u_char> &);

//binary pointwise commutative max I(u_char) I(u_char) u_char
friend IA_Image<IA_Point<int>, u_char> max(const IA_CoreImage<IA_Point<int>,u_char> &,u_char);
friend IA_Image<IA_Point<int>, u_char> max(u_char lhs,const IA_CoreImage<IA_Point<int>,u_char> & rhs) {
    return max(rhs,lhs);
}

//binary pointwise commutative min I(u_char) I(u_char) I(u_char)
friend IA_Image<IA_Point<int>, u_char> min(const IA_CoreImage<IA_Point<int>,u_char> &,const IA_CoreImage<IA_Point<int>,u_char> &);

//binary pointwise commutative min I(u_char) I(u_char) u_char
friend IA_Image<IA_Point<int>, u_char> min(const IA_CoreImage<IA_Point<int>,u_char> &,u_char);
friend IA_Image<IA_Point<int>, u_char> min(u_char lhs,const IA_CoreImage<IA_Point<int>,u_char> & rhs) {
    return min(rhs,lhs);
}

//filename UIO-reductions.c
//reduction sum subop=operator+ zero=0 int I(u_char)
friend int sum(const IA_CoreImage<IA_Point<int>,u_char> &);

//reduction product subop=operator* zero=1 int I(u_char)
friend int product(const IA_CoreImage<IA_Point<int>,u_char> &);

//reduction max subop=max zero=0 u_char I(u_char)
friend u_char max(const IA_CoreImage<IA_Point<int>,u_char> &);

//reduction min subop=min zero=255 u_char I(u_char)
friend u_char min(const IA_CoreImage<IA_Point<int>,u_char> &);

//filename UIO-unaries.c
//unary pointwise sqr I(int) I(u_char)
friend IA_CoreImage<IA_Point<int>, int> sqr(const IA_CoreImage<IA_Point<int>,u_char> & arg);

