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

// Machine generated include file, do not modify.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// filename CIO-__polar.c
// binary pointwise non-commutative polar I(complex) I(float) I(float)
// binary pointwise non-commutative polar I(complex) I(float) float
// binary pointwise non-commutative polar I(complex) float I(float)
//filename CIO-__eq.c
//binary strictrel commutative operator== int I(complex) I(complex)
friend int operator==(const IA_CoreImage<IA_Point<int>,complex> &,const IA_CoreImage<IA_Point<int>,complex> &);

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

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

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

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

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

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

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

//filename CIO-math.c
//unary pointwise sqrt I(complex) I(complex)
friend IA_Image<IA_Point<int>, complex> sqrt(const IA_CoreImage<IA_Point<int>,complex> & arg);

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

//unary pointwise abs_f subop=abs I(float) I(complex)
friend IA_CoreImage<IA_Point<int>, float> abs_f(const IA_CoreImage<IA_Point<int>,complex> & arg);

//unary pointwise arg_f subop=abs I(float) I(complex)
friend IA_CoreImage<IA_Point<int>, float> arg_f(const IA_CoreImage<IA_Point<int>,complex> & arg);

//unary pointwise conj subop=conj I(complex) I(complex)
friend IA_Image<IA_Point<int>, complex> conj(const IA_CoreImage<IA_Point<int>,complex> & arg);

//unary pointwise imag_f subop=imag I(float) I(complex)
friend IA_CoreImage<IA_Point<int>, float> imag_f(const IA_CoreImage<IA_Point<int>,complex> & arg);

//unary pointwise real_f subop=real I(float) I(complex) 
friend IA_CoreImage<IA_Point<int>, float> real_f(const IA_CoreImage<IA_Point<int>,complex> & arg);

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

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

