prefix
#
#	Copyright 1993, Center for Computer Vision and Visualization,
#	University of Florida.  All rights reserved.
#
#
# $Log: bit-operations.desc,v $
# Revision 1.6.1.2  1995/01/31  16:02:40  thoth
# Need to replace the upward conversions with something...
#
# Revision 1.6.1.1  1994/12/28  17:49:18  thoth
# Image operations are now friendly with FBI.
# Image ops now use operations table instead of switch.
#
# Revision 1.6  1994/08/22  15:20:29  thoth
# DOS-inspired name rework.
#
# 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:51:12  thoth
# converters to CoreImages now available.
#
# Revision 1.2  1993/12/29  17:16:45  thoth
# Bit Discrete Image now uses Bit type.
#
# Revision 1.1  1993/11/29  22:25:25  thoth
# Initial revision
#
#

"C#include "BitDI.h"
"C#include "VectorI.h"
"C#include "ConstI.h"
"C#include "ImageIter.h"
"C#include "FBI.h"
"C#include "../valueset/OpTable.h"
end

filename BIO-cvcomplex.c
#conversion I(complex) I(IA_Bit)
unary pointwise to_complex subop=complex I(complex) I(IA_Bit)
filename BIO-cvfloat.c
#conversion I(float) I(IA_Bit)
unary pointwise to_float subop= I(float) I(IA_Bit)
filename BIO-cvint.c
#conversion I(int) I(IA_Bit)
unary pointwise to_int subop= I(int) I(IA_Bit)
filename BIO-u_char.c
#conversion I(u_char) I(IA_Bit)
unary pointwise to_uchar subop= I(u_char) I(IA_Bit)

# Binary operations for the Bit Discrete Image

filename BIO-__ad.c
binary pointwise commutative operator& I(IA_Bit) I(IA_Bit) I(IA_Bit)
binary pointwise commutative operator& I(IA_Bit) I(IA_Bit) IA_Bit
pointwise operator&= I(IA_Bit) I(IA_Bit)
pointwise operator&= I(IA_Bit) IA_Bit

filename BIO-__or.c
binary pointwise commutative operator| I(IA_Bit) I(IA_Bit) I(IA_Bit)
binary pointwise commutative operator| I(IA_Bit) I(IA_Bit) IA_Bit
pointwise operator|= I(IA_Bit) I(IA_Bit)
pointwise operator|= I(IA_Bit) IA_Bit

filename BIO-__er.c
binary pointwise commutative operator^ I(IA_Bit) I(IA_Bit) I(IA_Bit)
binary pointwise commutative operator^ I(IA_Bit) I(IA_Bit) IA_Bit
pointwise operator^= I(IA_Bit) I(IA_Bit)
pointwise operator^= I(IA_Bit) IA_Bit

filename BIO-__nt.c
unary pointwise operator~ subop=operator! I(IA_Bit) I(IA_Bit)

unary pointwise operator! I(IA_Bit) I(IA_Bit)

filename BIO-__eq.c
binary strictrel commutative operator== int I(IA_Bit) I(IA_Bit)
binary strictrel commutative operator== int I(IA_Bit) IA_Bit

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

filename BIO-reductions.c
"C#ifdef __BROKEN_TYPE_CONVERSION
"Cinline int operator+(int a, IA_Bit b) { return a + int(b); }
"C#endif
reduction sum subop=operator+ zero=0 int I(IA_Bit)
