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

#
# $Log: cplx-operations.desc,v $
# Revision 1.8.1.2  1995/01/31  16:02:40  thoth
# Need to replace the upward conversions with something...
#
# Revision 1.8.1.1  1994/12/28  18:06:11  thoth
# image operations are now friendly with FBI.
# image ops now use operations table instead of switch.
#
# Revision 1.8  1994/12/19  19:58:48  ljr
# DOS-inspired name rework.
#
# Revision 1.7  1994/08/22  15:20:29  thoth
# DOS-inspired name rework.
#
# Revision 1.6  1994/05/27  15:33:15  thoth
# Pass-through C code wasn't passing through.
#
# Revision 1.5  1994/05/17  12:54:56  thoth
# Improved operations generation scheme.  Lines from the op.desc file can
# be quoted into the .c file to allow inclusion of infrastructure.  Also
# the op.desc output can be redirected to several files.  The prefix
# directive allows common information (include files) to be included in
# every generated source file.
#
# Revision 1.4  1994/02/03  16:22:48  thoth
# Arguments to binary operations were specified "lhs rhs return" but are
# now specified "return lhs rhs" to be consistent with function declaration
# syntax.
#
# Revision 1.3  1994/01/31  15:54:13  thoth
# chi_functions now return BitDIs.
# more pointwise complex functions.
#
# Revision 1.2  1993/12/29  17:27:24  thoth
# reductions require a zero now.
#
# Revision 1.1  1993/11/29  22:25:25  thoth
# Initial revision
#


#include <complex.h>
"C#include "CplxDI.h"
"C#include "VectorI.h"
"C#include "ConstI.h"
"C#include "ImageIter.h"
"C#include "FBI.h"
"C#include "../valueset/OpTable.h"
end

filename CIO-__pl.c
binary pointwise commutative operator+ I(complex) I(complex) I(complex)
binary pointwise commutative operator+ I(complex) I(complex) complex
pointwise operator+= I(complex) I(complex)
pointwise operator+= I(complex) complex

filename CIO-__mi.c
binary pointwise non-commutative operator- I(complex) I(complex) I(complex)
binary pointwise non-commutative operator- I(complex) I(complex) complex
binary pointwise non-commutative operator- I(complex) complex I(complex)
unary pointwise operator- I(complex) I(complex)
pointwise operator-= I(complex) I(complex)
pointwise operator-= I(complex) complex

filename CIO-__ml.c
binary pointwise commutative operator* I(complex) I(complex) I(complex)
binary pointwise commutative operator* I(complex) I(complex) complex
pointwise operator*= I(complex) I(complex)
pointwise operator*= I(complex) complex

#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)
binary pointwise non-commutative operator/ I(complex) I(complex) complex
binary pointwise non-commutative operator/ I(complex) complex I(complex)
pointwise operator/= I(complex) I(complex)
pointwise operator/= I(complex) complex

#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)
binary strictrel commutative operator== int I(complex) complex

filename CIO-strict_ne.c
binary strictrel commutative strict_ne subop=operator!= int I(complex) I(complex)
binary strictrel commutative strict_ne subop=operator!= int I(complex) complex



filename CIO-X_eq.c
binary pointwise commutative chi_eq subop=operator== I(IA_Bit) I(complex) I(complex)
binary pointwise commutative chi_eq subop=operator== I(IA_Bit) I(complex) complex

filename CIO-X_ne.c
binary pointwise commutative chi_ne subop=operator!= I(IA_Bit) I(complex) I(complex)
binary pointwise commutative chi_ne subop=operator!= I(IA_Bit) I(complex) complex


filename CIO-math.c
unary pointwise sqrt I(complex) I(complex)

"Ctemplate <class T>
"Cinline T sqr(T v)
"C{
"C    return v*v;
"C}
unary pointwise sqr I(complex) I(complex)


unary pointwise abs_f subop=abs I(float) I(complex)
unary pointwise arg_f subop=abs I(float) I(complex)
unary pointwise conj subop=conj I(complex) I(complex)
unary pointwise imag_f subop=imag I(float) I(complex)
unary pointwise real_f subop=real I(float) I(complex) 

filename CIO-reduce.c
reduction sum zero=0 subop=operator+ complex I(complex)
reduction product zero=1 subop=operator* complex I(complex)
