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

// Machine generated include file, do not modify.

//prefix
//filename BIO-cvcomplex.c
//conversion I(complex) I(IA_Bit)
operator IA_CoreImage<IA_Point<int>, complex>( );

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

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

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

//  Binary operations for the Bit Discrete Image
//filename BIO-__ad.c
//binary pointwise commutative operator& I(IA_Bit) I(IA_Bit) I(IA_Bit)
friend IA_Image<IA_Point<int>, IA_Bit> operator&(const IA_CoreImage<IA_Point<int>,IA_Bit> &,const IA_CoreImage<IA_Point<int>,IA_Bit> &);

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

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

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

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

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

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

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

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

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

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

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

//filename BIO-__nt.c
//unary pointwise operator~ subop=operator! I(IA_Bit) I(IA_Bit)
friend IA_Image<IA_Point<int>, IA_Bit> operator~(const IA_CoreImage<IA_Point<int>,IA_Bit> & arg);

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

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

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

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

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

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

