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

// Machine generated include file, do not modify.


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

//  Integer operations for the Int Discrete Image
//conversion I(float) I(u_char)
IA_FloatDiscreteImage(const IA_DiscreteImage<u_char> &);

//conversion I(float) I(int)
IA_FloatDiscreteImage(const IA_DiscreteImage<int> &);

//unary pointwise to_int subop=int I(int) I(float)
friend IA_DiscreteImage<int> to_int(const IA_FloatDiscreteImage & arg);

//unary pointwise to_uchar subop=u_char I(u_char) I(float)
friend IA_DiscreteImage<u_char> to_uchar(const IA_FloatDiscreteImage & arg);

//binary pointwise commutative operator+ I(float) I(float) I(float)
friend IA_FloatDiscreteImage operator+(const IA_FloatDiscreteImage &,const IA_FloatDiscreteImage &);

//binary pointwise commutative operator+ I(float) float I(float)
friend IA_FloatDiscreteImage operator+(const IA_FloatDiscreteImage &,float);
friend IA_FloatDiscreteImage operator+(float lhs,const IA_FloatDiscreteImage & rhs) {
    return rhs+lhs;
}

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

//pointwise operator+= I(float) float
IA_FloatDiscreteImage & operator+=(float arg) {
    return (*this) = (*this) + (arg);
}

//binary pointwise non-commutative operator- I(float) I(float) I(float)
friend IA_FloatDiscreteImage operator-(const IA_FloatDiscreteImage &,const IA_FloatDiscreteImage &);

//binary pointwise non-commutative operator- I(float) float I(float)
friend IA_FloatDiscreteImage operator-(const IA_FloatDiscreteImage &,float);

//binary pointwise non-commutative operator- float I(float) I(float)
friend IA_FloatDiscreteImage operator-(float,const IA_FloatDiscreteImage &);

//unary pointwise operator- I(float) I(float)
friend IA_FloatDiscreteImage operator-(const IA_FloatDiscreteImage & arg);

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

//pointwise operator-= I(float) float
IA_FloatDiscreteImage & operator-=(float arg) {
    return (*this) = (*this) - (arg);
}

//binary pointwise commutative operator* I(float) I(float) I(float)
friend IA_FloatDiscreteImage operator*(const IA_FloatDiscreteImage &,const IA_FloatDiscreteImage &);

//binary pointwise commutative operator* I(float) float I(float)
friend IA_FloatDiscreteImage operator*(const IA_FloatDiscreteImage &,float);
friend IA_FloatDiscreteImage operator*(float lhs,const IA_FloatDiscreteImage & rhs) {
    return rhs*lhs;
}

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

//pointwise operator*= I(float) float
IA_FloatDiscreteImage & operator*=(float arg) {
    return (*this) = (*this) * (arg);
}

//binary pointwise non-commutative operator/ I(float) I(float) I(float)
friend IA_FloatDiscreteImage operator/(const IA_FloatDiscreteImage &,const IA_FloatDiscreteImage &);

//binary pointwise non-commutative operator/ I(float) float I(float)
friend IA_FloatDiscreteImage operator/(const IA_FloatDiscreteImage &,float);

//binary pointwise non-commutative operator/ float I(float) I(float)
friend IA_FloatDiscreteImage operator/(float,const IA_FloatDiscreteImage &);

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

//pointwise operator/= I(float) float
IA_FloatDiscreteImage & operator/=(float arg) {
    return (*this) = (*this) / (arg);
}

//binary pointwise commutative operator&& I(float) I(float) I(float)
friend IA_FloatDiscreteImage operator&&(const IA_FloatDiscreteImage &,const IA_FloatDiscreteImage &);

//binary pointwise commutative operator&& I(float) float I(float)
friend IA_FloatDiscreteImage operator&&(const IA_FloatDiscreteImage &,float);
friend IA_FloatDiscreteImage operator&&(float lhs,const IA_FloatDiscreteImage & rhs) {
    return rhs&&lhs;
}

//binary pointwise commutative operator|| I(float) I(float) I(float)
friend IA_FloatDiscreteImage operator||(const IA_FloatDiscreteImage &,const IA_FloatDiscreteImage &);

//binary pointwise commutative operator|| I(float) float I(float)
friend IA_FloatDiscreteImage operator||(const IA_FloatDiscreteImage &,float);
friend IA_FloatDiscreteImage operator||(float lhs,const IA_FloatDiscreteImage & rhs) {
    return rhs||lhs;
}

//unary pointwise operator! I(float) I(float)
friend IA_FloatDiscreteImage operator!(const IA_FloatDiscreteImage & arg);

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

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

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

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

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

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

//binary strictrel commutative operator== I(float) I(float) int
friend int operator==(const IA_FloatDiscreteImage &,const IA_FloatDiscreteImage &);

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

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

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

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

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

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

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

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

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

//binary pointwise non-commutative pwise_lt subop=operator< I(float) I(float) I(int)
friend IA_DiscreteImage<int> pwise_lt(const IA_FloatDiscreteImage &,const IA_FloatDiscreteImage &);

//binary pointwise non-commutative pwise_lt subop=operator< I(float) float I(int)
friend IA_DiscreteImage<int> pwise_lt(const IA_FloatDiscreteImage &,float);

//binary pointwise non-commutative pwise_lt subop=operator< float I(float) I(int)
friend IA_DiscreteImage<int> pwise_lt(float,const IA_FloatDiscreteImage &);

//binary pointwise non-commutative pwise_le subop=operator<= I(float) I(float) I(int)
friend IA_DiscreteImage<int> pwise_le(const IA_FloatDiscreteImage &,const IA_FloatDiscreteImage &);

//binary pointwise non-commutative pwise_le subop=operator<= I(float) float I(int)
friend IA_DiscreteImage<int> pwise_le(const IA_FloatDiscreteImage &,float);

//binary pointwise non-commutative pwise_le subop=operator<= float I(float) I(int)
friend IA_DiscreteImage<int> pwise_le(float,const IA_FloatDiscreteImage &);

//binary pointwise commutative pwise_eq subop=operator== I(float) I(float) I(int)
friend IA_DiscreteImage<int> pwise_eq(const IA_FloatDiscreteImage &,const IA_FloatDiscreteImage &);

//binary pointwise commutative pwise_eq subop=operator== I(float) float I(int)
friend IA_DiscreteImage<int> pwise_eq(const IA_FloatDiscreteImage &,float);
friend IA_DiscreteImage<int> pwise_eq(float lhs,const IA_FloatDiscreteImage & rhs) {
    return pwise_eq(rhs,lhs);
}

//binary pointwise commutative pwise_ne subop=operator!= I(float) I(float) I(int)
friend IA_DiscreteImage<int> pwise_ne(const IA_FloatDiscreteImage &,const IA_FloatDiscreteImage &);

//binary pointwise commutative pwise_ne subop=operator!= I(float) float I(int)
friend IA_DiscreteImage<int> pwise_ne(const IA_FloatDiscreteImage &,float);
friend IA_DiscreteImage<int> pwise_ne(float lhs,const IA_FloatDiscreteImage & rhs) {
    return pwise_ne(rhs,lhs);
}

//binary pointwise non-commutative pwise_ge subop=operator>= I(float) I(float) I(int)
friend IA_DiscreteImage<int> pwise_ge(const IA_FloatDiscreteImage &,const IA_FloatDiscreteImage &);

//binary pointwise non-commutative pwise_ge subop=operator>= I(float) float I(int)
friend IA_DiscreteImage<int> pwise_ge(const IA_FloatDiscreteImage &,float);

//binary pointwise non-commutative pwise_ge subop=operator>= float I(float) I(int)
friend IA_DiscreteImage<int> pwise_ge(float,const IA_FloatDiscreteImage &);

//binary pointwise non-commutative pwise_gt subop=operator> I(float) I(float) I(int)
friend IA_DiscreteImage<int> pwise_gt(const IA_FloatDiscreteImage &,const IA_FloatDiscreteImage &);

//binary pointwise non-commutative pwise_gt subop=operator> I(float) float I(int)
friend IA_DiscreteImage<int> pwise_gt(const IA_FloatDiscreteImage &,float);

//binary pointwise non-commutative pwise_gt subop=operator> float I(float) I(int)
friend IA_DiscreteImage<int> pwise_gt(float,const IA_FloatDiscreteImage &);

//unary pointwise sqrt I(float) I(float)
friend IA_FloatDiscreteImage sqrt(const IA_FloatDiscreteImage & arg);

//unary pointwise sqr I(float) I(float)
friend IA_FloatDiscreteImage sqr(const IA_FloatDiscreteImage & arg);

//binary pointwise commutative max I(float) I(float) I(float)
friend IA_FloatDiscreteImage max(const IA_FloatDiscreteImage &,const IA_FloatDiscreteImage &);

//binary pointwise commutative max I(float) float I(float)
friend IA_FloatDiscreteImage max(const IA_FloatDiscreteImage &,float);
friend IA_FloatDiscreteImage max(float lhs,const IA_FloatDiscreteImage & rhs) {
    return max(rhs,lhs);
}

//binary pointwise commutative min I(float) I(float) I(float)
friend IA_FloatDiscreteImage min(const IA_FloatDiscreteImage &,const IA_FloatDiscreteImage &);

//binary pointwise commutative min I(float) float I(float)
friend IA_FloatDiscreteImage min(const IA_FloatDiscreteImage &,float);
friend IA_FloatDiscreteImage min(float lhs,const IA_FloatDiscreteImage & rhs) {
    return min(rhs,lhs);
}

//reduction reduce_plus subop=operator+ float I(float)
friend float reduce_plus(const IA_FloatDiscreteImage &);

//reduction max subop=max float I(float)
friend float max(const IA_FloatDiscreteImage &);

//reduction min subop=min float I(float)
friend float min(const IA_FloatDiscreteImage &);

