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

// Machine generated include file, do not modify.

//prefix
//filename IIO-cvcomplex.c
// conversion I(complex) I(int)
//unary pointwise to_complex subop= I(complex) I(int)
IA_Image<IA_Point<int>,complex> to_complex(const IA_Image<IA_Point<int>,int> & rhs);

//filename IIO-cvfloat.c
// conversion I(float) I(int)
//unary pointwise to_float subop= I(float) I(int)
IA_Image<IA_Point<int>,float> to_float(const IA_Image<IA_Point<int>,int> & rhs);

//filename IIO-to_uchar.c
//unary pointwise to_uchar subop=u_char I(u_char) I(int)
IA_Image<IA_Point<int>,u_char> to_uchar(const IA_Image<IA_Point<int>,int> & rhs);

//filename IIO-to_bit.c
//unary pointwise to_bit subop=IA_Bit I(IA_Bit) I(int)
IA_Image<IA_Point<int>,IA_Bit> to_bit(const IA_Image<IA_Point<int>,int> & rhs);

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

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

//pointwise operator+= I(int) I(int)
inline IA_Image<IA_Point<int>,int> & operator+=(IA_Image<IA_Point<int>,int>& lhs, const IA_Image<IA_Point<int>,int> & rhs) {
    return lhs = lhs + rhs;
}

//pointwise operator+= I(int) int
inline IA_Image<IA_Point<int>,int> & operator+=(IA_Image<IA_Point<int>,int>& lhs, int rhs) {
    return lhs = lhs + rhs;
}

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

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

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

//unary pointwise operator- I(int) I(int)
IA_Image<IA_Point<int>,int> operator-(const IA_Image<IA_Point<int>,int> & rhs);

//pointwise operator-= I(int) I(int)
inline IA_Image<IA_Point<int>,int> & operator-=(IA_Image<IA_Point<int>,int>& lhs, const IA_Image<IA_Point<int>,int> & rhs) {
    return lhs = lhs - rhs;
}

//pointwise operator-= I(int) int
inline IA_Image<IA_Point<int>,int> & operator-=(IA_Image<IA_Point<int>,int>& lhs, int rhs) {
    return lhs = lhs - rhs;
}

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

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

//pointwise operator*= I(int) I(int)
inline IA_Image<IA_Point<int>,int> & operator*=(IA_Image<IA_Point<int>,int>& lhs, const IA_Image<IA_Point<int>,int> & rhs) {
    return lhs = lhs * rhs;
}

//pointwise operator*= I(int) int
inline IA_Image<IA_Point<int>,int> & operator*=(IA_Image<IA_Point<int>,int>& lhs, int rhs) {
    return lhs = lhs * rhs;
}

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

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

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

//pointwise operator/= I(int) I(int)
inline IA_Image<IA_Point<int>,int> & operator/=(IA_Image<IA_Point<int>,int>& lhs, const IA_Image<IA_Point<int>,int> & rhs) {
    return lhs = lhs / rhs;
}

//pointwise operator/= I(int) int
inline IA_Image<IA_Point<int>,int> & operator/=(IA_Image<IA_Point<int>,int>& lhs, int rhs) {
    return lhs = lhs / rhs;
}

//binary pointwise non-commutative pseudo_div I(int) I(int) I(int)
IA_Image<IA_Point<int>,int> pseudo_div(const IA_Image<IA_Point<int>,int> &,const IA_Image<IA_Point<int>,int> &);

//binary pointwise non-commutative pseudo_div I(int) int I(int)
IA_Image<IA_Point<int>,int> pseudo_div(int,const IA_Image<IA_Point<int>,int> &);

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

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

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

//pointwise operator%= I(int) I(int)
inline IA_Image<IA_Point<int>,int> & operator%=(IA_Image<IA_Point<int>,int>& lhs, const IA_Image<IA_Point<int>,int> & rhs) {
    return lhs = lhs % rhs;
}

//pointwise operator%= I(int) int
inline IA_Image<IA_Point<int>,int> & operator%=(IA_Image<IA_Point<int>,int>& lhs, int rhs) {
    return lhs = lhs % rhs;
}

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

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

//pointwise operator&= I(int) I(int)
inline IA_Image<IA_Point<int>,int> & operator&=(IA_Image<IA_Point<int>,int>& lhs, const IA_Image<IA_Point<int>,int> & rhs) {
    return lhs = lhs & rhs;
}

//pointwise operator&= I(int) int
inline IA_Image<IA_Point<int>,int> & operator&=(IA_Image<IA_Point<int>,int>& lhs, int rhs) {
    return lhs = lhs & rhs;
}

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

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

//pointwise operator|= I(int) I(int)
inline IA_Image<IA_Point<int>,int> & operator|=(IA_Image<IA_Point<int>,int>& lhs, const IA_Image<IA_Point<int>,int> & rhs) {
    return lhs = lhs | rhs;
}

//pointwise operator|= I(int) int
inline IA_Image<IA_Point<int>,int> & operator|=(IA_Image<IA_Point<int>,int>& lhs, int rhs) {
    return lhs = lhs | rhs;
}

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

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

//pointwise operator^= I(int) I(int)
inline IA_Image<IA_Point<int>,int> & operator^=(IA_Image<IA_Point<int>,int>& lhs, const IA_Image<IA_Point<int>,int> & rhs) {
    return lhs = lhs ^ rhs;
}

//pointwise operator^= I(int) int
inline IA_Image<IA_Point<int>,int> & operator^=(IA_Image<IA_Point<int>,int>& lhs, int rhs) {
    return lhs = lhs ^ rhs;
}

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

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

//pointwise operator<<= I(int) I(int)
inline IA_Image<IA_Point<int>,int> & operator<<=(IA_Image<IA_Point<int>,int>& lhs, const IA_Image<IA_Point<int>,int> & rhs) {
    return lhs = lhs << rhs;
}

//pointwise operator<<= I(int) int
inline IA_Image<IA_Point<int>,int> & operator<<=(IA_Image<IA_Point<int>,int>& lhs, int rhs) {
    return lhs = lhs << rhs;
}

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

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

//pointwise operator>>= I(int) I(int)
inline IA_Image<IA_Point<int>,int> & operator>>=(IA_Image<IA_Point<int>,int>& lhs, const IA_Image<IA_Point<int>,int> & rhs) {
    return lhs = lhs >> rhs;
}

//pointwise operator>>= I(int) int
inline IA_Image<IA_Point<int>,int> & operator>>=(IA_Image<IA_Point<int>,int>& lhs, int rhs) {
    return lhs = lhs >> rhs;
}

//filename IIO-__co.c
//unary pointwise operator~ I(int) I(int)
IA_Image<IA_Point<int>,int> operator~(const IA_Image<IA_Point<int>,int> & rhs);

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

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

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

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

//filename IIO-__nt.c
//unary pointwise operator! I(int) I(int)
IA_Image<IA_Point<int>,int> operator!(const IA_Image<IA_Point<int>,int> & rhs);

//filename IIO-__lt.c
//binary strictrel non-commutative operator< int I(int) I(int)
int operator<(const IA_Image<IA_Point<int>,int> &,const IA_Image<IA_Point<int>,int> &);

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

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

//filename IIO-__le.c
//binary strictrel non-commutative operator<= int I(int) I(int)
int operator<=(const IA_Image<IA_Point<int>,int> &,const IA_Image<IA_Point<int>,int> &);

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

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

//filename IIO-__eq.c
//binary strictrel commutative operator== int I(int) I(int)
int operator==(const IA_Image<IA_Point<int>,int> &,const IA_Image<IA_Point<int>,int> &);

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

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

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

//filename IIO-__ge.c
//binary strictrel non-commutative operator>= int I(int) I(int)
int operator>=(const IA_Image<IA_Point<int>,int> &,const IA_Image<IA_Point<int>,int> &);

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

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

//filename IIO-__gt.c
//binary strictrel non-commutative operator> int I(int) I(int)
int operator>(const IA_Image<IA_Point<int>,int> &,const IA_Image<IA_Point<int>,int> &);

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

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

//filename IIO-X_lt.c
//binary pointwise non-commutative chi_lt subop=operator< I(IA_Bit) I(int) I(int)
IA_Image<IA_Point<int>,IA_Bit> chi_lt(const IA_Image<IA_Point<int>,int> &,const IA_Image<IA_Point<int>,int> &);

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

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

//filename IIO-X_le.c
//binary pointwise non-commutative chi_le subop=operator<= I(IA_Bit) I(int) I(int)
IA_Image<IA_Point<int>,IA_Bit> chi_le(const IA_Image<IA_Point<int>,int> &,const IA_Image<IA_Point<int>,int> &);

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

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

//filename IIO-X_eq.c
//binary pointwise commutative chi_eq subop=operator== I(IA_Bit) I(int) I(int)
IA_Image<IA_Point<int>,IA_Bit> chi_eq(const IA_Image<IA_Point<int>,int> &,const IA_Image<IA_Point<int>,int> &);

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

//filename IIO-X_ne.c
//binary pointwise commutative chi_ne subop=operator!= I(IA_Bit) I(int) I(int)
IA_Image<IA_Point<int>,IA_Bit> chi_ne(const IA_Image<IA_Point<int>,int> &,const IA_Image<IA_Point<int>,int> &);

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

//filename IIO-X_ge.c
//binary pointwise non-commutative chi_ge subop=operator>= I(IA_Bit) I(int) I(int)
IA_Image<IA_Point<int>,IA_Bit> chi_ge(const IA_Image<IA_Point<int>,int> &,const IA_Image<IA_Point<int>,int> &);

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

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

//filename IIO-X_gt.c
//binary pointwise non-commutative chi_gt subop=operator> I(IA_Bit) I(int) I(int)
IA_Image<IA_Point<int>,IA_Bit> chi_gt(const IA_Image<IA_Point<int>,int> &,const IA_Image<IA_Point<int>,int> &);

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

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

//filename IIO-unaries.c
//unary pointwise isqrt I(int) I(int)
IA_Image<IA_Point<int>,int> isqrt(const IA_Image<IA_Point<int>,int> & rhs);

//unary pointwise sqr I(int) I(int)
IA_Image<IA_Point<int>,int> sqr(const IA_Image<IA_Point<int>,int> & rhs);

//unary pointwise abs I(int) I(int)
IA_Image<IA_Point<int>,int> abs(const IA_Image<IA_Point<int>,int> & rhs);

//unary pointwise sgn I(int) I(int)
IA_Image<IA_Point<int>,int> sgn(const IA_Image<IA_Point<int>,int> & rhs);

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

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

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

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

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

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

//reduction max zero=-MAXINT int I(int)
int max(const IA_Image<IA_Point<int>,int> &);

//reduction min zero=MAXINT int I(int)
int min(const IA_Image<IA_Point<int>,int> &);

