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

// Machine generated include file, do not modify.

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

//filename FIO-cnuchar.c
//constructor I(float) I(u_char)
IA_Image(const IA_CoreImage<IA_Point<int>,u_char> &);

//filename FIO-cnint.c
//constructor I(float) I(int)
IA_Image(const IA_CoreImage<IA_Point<int>,int> &);

//filename FIO-to_int.c
//unary pointwise to_int subop=int I(int) I(float)
friend IA_CoreImage<IA_Point<int>, int> to_int(const IA_CoreImage<IA_Point<int>,float> & arg);

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

//unary pointwise pseudo_inv I(float) I(float)
friend IA_Image<IA_Point<int>, float> pseudo_inv(const IA_CoreImage<IA_Point<int>,float> & arg);

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

//filename FIO-libm.c
//unary pointwise sqrt I(float) I(float)
friend IA_Image<IA_Point<int>, float> sqrt(const IA_CoreImage<IA_Point<int>,float> & arg);

//unary pointwise sqr I(float) I(float)
friend IA_Image<IA_Point<int>, float> sqr(const IA_CoreImage<IA_Point<int>,float> & arg);

//unary pointwise fabs I(float) I(float)
friend IA_Image<IA_Point<int>, float> fabs(const IA_CoreImage<IA_Point<int>,float> & arg);

//unary pointwise cos I(float) I(float)
friend IA_Image<IA_Point<int>, float> cos(const IA_CoreImage<IA_Point<int>,float> & arg);

//unary pointwise sin I(float) I(float)
friend IA_Image<IA_Point<int>, float> sin(const IA_CoreImage<IA_Point<int>,float> & arg);

//unary pointwise tan I(float) I(float)
friend IA_Image<IA_Point<int>, float> tan(const IA_CoreImage<IA_Point<int>,float> & arg);

//unary pointwise exp I(float) I(float)
friend IA_Image<IA_Point<int>, float> exp(const IA_CoreImage<IA_Point<int>,float> & arg);

//unary pointwise log I(float) I(float)
friend IA_Image<IA_Point<int>, float> log(const IA_CoreImage<IA_Point<int>,float> & arg);

//unary pointwise ceil I(float) I(float)
friend IA_Image<IA_Point<int>, float> ceil(const IA_CoreImage<IA_Point<int>,float> & arg);

//unary pointwise floor I(float) I(float)
friend IA_Image<IA_Point<int>, float> floor(const IA_CoreImage<IA_Point<int>,float> & arg);

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

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

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

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

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

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

//reduction max zero=infinity() subop=max double I(float)
friend double max(const IA_CoreImage<IA_Point<int>,float> &);

//reduction min zero=-infinity() subop=min double I(float)
friend double min(const IA_CoreImage<IA_Point<int>,float> &);

