head	1.9;
access;
symbols
	bobbase:1.9
	bob:1.9.1
	r2_1:1.8
	r2_0:1.8
	r1_1_beta:1.8
	r1_1_alpha:1.8
	r1_0:1.8
	r0_11:1.7
	r0_10:1.5
	r0_9:1.3;
locks
	thoth:1.9.1.2; strict;
comment	@# @;


1.9
date	94.12.19.19.58.48;	author ljr;	state Exp;
branches
	1.9.1.1;
next	1.8;

1.8
date	94.05.17.12.54.56;	author thoth;	state Exp;
branches;
next	1.7;

1.7
date	94.03.14.15.53.34;	author thoth;	state Exp;
branches;
next	1.6;

1.6
date	94.02.03.16.22.48;	author thoth;	state Exp;
branches;
next	1.5;

1.5
date	94.01.31.16.03.43;	author thoth;	state Exp;
branches;
next	1.4;

1.4
date	93.12.29.17.28.38;	author thoth;	state Exp;
branches;
next	1.3;

1.3
date	93.11.17.18.41.40;	author thoth;	state Exp;
branches;
next	1.2;

1.2
date	93.09.21.11.45.48;	author thoth;	state Exp;
branches;
next	1.1;

1.1
date	93.09.15.13.04.42;	author thoth;	state Exp;
branches;
next	;

1.9.1.1
date	94.12.28.17.56.27;	author thoth;	state Exp;
branches;
next	1.9.1.2;

1.9.1.2
date	95.01.31.16.02.40;	author thoth;	state Exp;
branches;
next	;


desc
@description of int image operations.
@


1.9
log
@DOS-inspired name rework.
@
text
@prefix
#
#	Copyright 1993, Center for Computer Vision and Visualization,
#	University of Florida.  All rights reserved.
#

#
# $Log: int-operations.desc,v $
# Revision 1.8  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.
#

# Integer operations for the Int Discrete Image

"C#include "IntDI.h"
"C#include "VectorI.h"
"C#include "ConstI.h"
"C#include "ImageIter.h"
end

filename IIO-cnBit.c
constructor I(int) I(IA_Bit)
filename IIO-cnUchar.c
constructor I(int) I(u_char)
filename IIO-cvcomplex.c
conversion I(complex) I(int)
filename IIO-cvfloat.c
conversion I(float) I(int)
filename IIO-to_uchar.c
unary pointwise to_uchar subop=u_char I(u_char) I(int)
filename IIO-to_bit.c
unary pointwise to_bit subop=IA_Bit I(IA_Bit) I(int)


filename IIO-__pl.c
binary pointwise commutative operator+ I(int) I(int) I(int)
binary pointwise commutative operator+ I(int) I(int) int
pointwise operator+= I(int) I(int)
pointwise operator+= I(int) int

filename IIO-__mi.c
binary pointwise non-commutative operator- I(int) I(int) I(int)
binary pointwise non-commutative operator- I(int) I(int) int
binary pointwise non-commutative operator- I(int) int I(int)
unary pointwise operator- I(int) I(int)
pointwise operator-= I(int) I(int)
pointwise operator-= I(int) int

filename IIO-__ml.c
binary pointwise commutative operator* I(int) I(int) I(int)
binary pointwise commutative operator* I(int) I(int) int
pointwise operator*= I(int) I(int)
pointwise operator*= I(int) int

#filename IIO-__mlBit.c
#binary pointwise commutative operator* I(int) I(int) I(IA_Bit)
#binary pointwise commutative operator* I(int) int I(IA_Bit)
#pointwise operator*= I(int) I(IA_Bit)

filename IIO-__dv.c
binary pointwise non-commutative operator/ I(int) I(int) I(int)
binary pointwise non-commutative operator/ I(int) I(int) int
binary pointwise non-commutative operator/ I(int) int I(int)
pointwise operator/= I(int) I(int)
pointwise operator/= I(int) int

"Cinline int pseudo_div(int a, int b)
"C{
"C    return (b==0) ? 0 : (a/b);
"C}

binary pointwise non-commutative pseudo_div I(int) I(int) I(int)
binary pointwise non-commutative pseudo_div I(int) int I(int)

filename IIO-__md.c
binary pointwise non-commutative operator% I(int) I(int) I(int)
binary pointwise non-commutative operator% I(int) I(int) int
binary pointwise non-commutative operator% I(int) int I(int)
pointwise operator%= I(int) I(int)
pointwise operator%= I(int) int


filename IIO-__ad.c
binary pointwise commutative operator& I(int) I(int) I(int)
binary pointwise commutative operator& I(int) I(int) int
pointwise operator&= I(int) I(int)
pointwise operator&= I(int) int

filename IIO-__or.c
binary pointwise commutative operator| I(int) I(int) I(int)
binary pointwise commutative operator| I(int) I(int) int
pointwise operator|= I(int) I(int)
pointwise operator|= I(int) int

filename IIO-__er.c
binary pointwise commutative operator^ I(int) I(int) I(int)
binary pointwise commutative operator^ I(int) I(int) int
pointwise operator^= I(int) I(int)
pointwise operator^= I(int) int

filename IIO-__ls.c
binary pointwise commutative operator<< I(int) I(int) I(int)
binary pointwise commutative operator<< I(int) I(int) int
pointwise operator<<= I(int) I(int)
pointwise operator<<= I(int) int

filename IIO-__rs.c
binary pointwise commutative operator>> I(int) I(int) I(int)
binary pointwise commutative operator>> I(int) I(int) int
pointwise operator>>= I(int) I(int)
pointwise operator>>= I(int) int

filename IIO-__co.c
unary pointwise operator~ I(int) I(int)


filename IIO-__aa.c
binary pointwise commutative operator&& I(int) I(int) I(int)
binary pointwise commutative operator&& I(int) I(int) int

filename IIO-__oo.c
binary pointwise commutative operator|| I(int) I(int) I(int)
binary pointwise commutative operator|| I(int) I(int) int

filename IIO-__nt.c
unary pointwise operator! I(int) I(int)


filename IIO-__lt.c
binary strictrel non-commutative operator< int I(int) I(int)
binary strictrel non-commutative operator< int I(int) int
binary strictrel non-commutative operator< int int I(int)

filename IIO-__le.c
binary strictrel non-commutative operator<= int I(int) I(int)
binary strictrel non-commutative operator<= int I(int) int
binary strictrel non-commutative operator<= int int I(int)

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

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

filename IIO-__ge.c
binary strictrel non-commutative operator>= int I(int) I(int)
binary strictrel non-commutative operator>= int I(int) int
binary strictrel non-commutative operator>= int int I(int)

filename IIO-__gt.c
binary strictrel non-commutative operator> int I(int) I(int)
binary strictrel non-commutative operator> int I(int) int
binary strictrel non-commutative operator> int int I(int)

filename IIO-X_lt.c
binary pointwise non-commutative chi_lt subop=operator< I(IA_Bit) I(int) I(int)
binary pointwise non-commutative chi_lt subop=operator< I(IA_Bit) I(int) int
binary pointwise non-commutative chi_lt subop=operator< I(IA_Bit) int I(int)

filename IIO-X_le.c
binary pointwise non-commutative chi_le subop=operator<= I(IA_Bit) I(int) I(int)
binary pointwise non-commutative chi_le subop=operator<= I(IA_Bit) I(int) int
binary pointwise non-commutative chi_le subop=operator<= I(IA_Bit) int I(int)

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

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

filename IIO-X_ge.c
binary pointwise non-commutative chi_ge subop=operator>= I(IA_Bit) I(int) I(int)
binary pointwise non-commutative chi_ge subop=operator>= I(IA_Bit) I(int) int
binary pointwise non-commutative chi_ge subop=operator>= I(IA_Bit) int I(int)

filename IIO-X_gt.c
binary pointwise non-commutative chi_gt subop=operator> I(IA_Bit) I(int) I(int)
binary pointwise non-commutative chi_gt subop=operator> I(IA_Bit) I(int) int
binary pointwise non-commutative chi_gt subop=operator> I(IA_Bit) int I(int)


filename IIO-unaries.c

"Cinline int isqrt(int v)
"C{
"C    return (int) (sqrt((double) v));
"C}
unary pointwise isqrt I(int) I(int)

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

"Ctemplate <class T>
"Cinline T abs(T v)
"C{
"C    return (v>=0)?(v):(-v);
"C}
unary pointwise abs I(int) I(int)

filename IIO-minmax.c

"Ctemplate <class T>
"Cinline T max(T a, T b)
"C{
"C    return (a<b)?b:a;
"C}
binary pointwise commutative max I(int) I(int) I(int)
binary pointwise commutative max I(int) I(int) int

"Ctemplate <class T>
"Cinline T min(T a, T b)
"C{
"C    return (a<b)?a:b;
"C}
binary pointwise commutative min I(int) I(int) I(int)
binary pointwise commutative min I(int) I(int) int

filename IIO-reductions.c

"C#include <values.h>

"C#define  const_reduce_int_int_sum
"Cinline int const_reduce_sum(unsigned sz, int arg)
"C{
"C    return sz * arg;
"C}
reduction sum subop=operator+ zero=0 int I(int)
reduction product zero=1 subop=operator* int I(int)

"Ctemplate <class T>
"Cinline T max(T a, T b)
"C{
"C    return (a<b)?b:a;
"C}
"C#define const_reduce_int_int_max
"Cinline int const_reduce_max(unsigned, int arg)
"C{
"C    return arg;
"C}
reduction max zero=-MAXINT int I(int)

"Ctemplate <class T>
"Cinline T min(T a, T b)
"C{
"C    return (a<b)?a:b;
"C}
"C#define const_reduce_int_int_min
"Cinline int const_reduce_min(unsigned, int arg)
"C{
"C    return arg;
"C}
reduction min zero=MAXINT int I(int)
@


1.9.1.1
log
@Conversion to operations table.
image operations are now friendly with FBI.
new sgn() function.
@
text
@a8 3
# Revision 1.9  1994/12/19  19:58:48  ljr
# DOS-inspired name rework.
#
a22 2
"C#include "FBI.h"
"C#include "../valueset/OpTable.h"
a210 7

"Ctemplate <class T>
"Cinline T sgn(T v)
"C{
"C    return (v>0)?1:(v<0)?-1:0;
"C}
unary pointwise sgn I(int) I(int)
@


1.9.1.2
log
@Need to replace the upward conversions with something...
@
text
@a8 5
# Revision 1.9.1.1  1994/12/28  17:56:27  thoth
# Conversion to operations table.
# image operations are now friendly with FBI.
# new sgn() function.
#
d30 4
d35 1
a35 2
#conversion I(complex) I(int)
unary pointwise to_complex subop= I(complex) I(int)
d37 1
a37 2
#conversion I(float) I(int)
unary pointwise to_float subop= I(float) I(int)
@


1.8
log
@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.
@
text
@d8 8
a15 1
# $Log: bit-operations.desc,v $
d161 1
a161 1
filename IIO-chi_lt.c
d166 1
a166 1
filename IIO-chi_le.c
d171 1
a171 1
filename IIO-chi_eq.c
d175 1
a175 1
filename IIO-chi_ne.c
d179 1
a179 1
filename IIO-chi_ge.c
d184 1
a184 1
filename IIO-chi_gt.c
@


1.7
log
@abs is now available on Int images.
@
text
@d1 1
d7 3
d12 7
d20 1
d22 1
d24 1
d26 1
d28 1
d32 1
d38 1
d46 1
d52 1
d57 1
d64 5
d72 1
a72 1

d80 1
a80 1

d86 1
d92 1
d98 1
d104 1
d110 1
d114 1
a114 1

d118 1
d122 1
d126 1
a126 1

d131 1
d136 1
d140 1
d144 1
d149 1
d154 1
d159 1
d164 1
d168 1
d172 1
d177 1
d183 1
d185 4
d190 6
d197 6
d204 8
d214 6
d223 9
d234 11
d246 11
@


1.6
log
@Arguments to binary operations were specified "lhs rhs return" but are
now specified "return lhs rhs" to be consistent with function declaration
syntax.
@
text
@d142 1
@


1.5
log
@some extra constructors and the new conversions.
pseudo-division is now available.
chi functions now return BitDIs.
@
text
@d17 1
a17 1
binary pointwise commutative operator+ I(int) int I(int)
d22 1
a23 1
binary pointwise non-commutative operator- int I(int) I(int)
d29 1
a29 1
binary pointwise commutative operator* I(int) int I(int)
d33 2
a34 2
#binary pointwise commutative operator* I(int) I(IA_Bit) I(int)
#binary pointwise commutative operator* int I(IA_Bit) I(int)
d38 1
a39 1
binary pointwise non-commutative operator/ int I(int) I(int)
d44 1
a44 1
binary pointwise non-commutative pseudo_div int I(int) I(int)
d48 1
a49 1
binary pointwise non-commutative operator% int I(int) I(int)
d56 1
a56 1
binary pointwise commutative operator& I(int) int I(int)
d61 1
a61 1
binary pointwise commutative operator| I(int) int I(int)
d66 1
a66 1
binary pointwise commutative operator^ I(int) int I(int)
d71 1
a71 1
binary pointwise commutative operator<< I(int) int I(int)
d76 1
a76 1
binary pointwise commutative operator>> I(int) int I(int)
d85 1
a85 1
binary pointwise commutative operator&& I(int) int I(int)
d88 1
a88 1
binary pointwise commutative operator|| I(int) int I(int)
d94 1
a94 2
binary strictrel non-commutative operator< I(int) I(int) int
binary strictrel non-commutative operator< I(int) int int
d96 1
d98 1
a98 2
binary strictrel non-commutative operator<= I(int) I(int) int
binary strictrel non-commutative operator<= I(int) int int
d100 1
d102 2
a103 2
binary strictrel commutative operator== I(int) I(int) int
binary strictrel commutative operator== I(int) int int
d105 2
a106 2
binary strictrel commutative strict_ne subop=operator!= I(int) I(int) int
binary strictrel commutative strict_ne subop=operator!= I(int) int int
d108 1
a108 2
binary strictrel non-commutative operator>= I(int) I(int) int
binary strictrel non-commutative operator>= I(int) int int
d110 1
d112 1
a112 2
binary strictrel non-commutative operator> I(int) I(int) int
binary strictrel non-commutative operator> I(int) int int
d114 1
d116 3
a118 21
binary pointwise non-commutative chi_lt subop=operator< I(int) I(int) I(IA_Bit)
binary pointwise non-commutative chi_lt subop=operator< I(int) int I(IA_Bit)
binary pointwise non-commutative chi_lt subop=operator< int I(int) I(IA_Bit)

binary pointwise non-commutative chi_le subop=operator<= I(int) I(int) I(IA_Bit)
binary pointwise non-commutative chi_le subop=operator<= I(int) int I(IA_Bit)
binary pointwise non-commutative chi_le subop=operator<= int I(int) I(IA_Bit)

binary pointwise commutative chi_eq subop=operator== I(int) I(int) I(IA_Bit)
binary pointwise commutative chi_eq subop=operator== I(int) int I(IA_Bit)

binary pointwise commutative chi_ne subop=operator!= I(int) I(int) I(IA_Bit)
binary pointwise commutative chi_ne subop=operator!= I(int) int I(IA_Bit)

binary pointwise non-commutative chi_ge subop=operator>= I(int) I(int) I(IA_Bit)
binary pointwise non-commutative chi_ge subop=operator>= I(int) int I(IA_Bit)
binary pointwise non-commutative chi_ge subop=operator>= int I(int) I(IA_Bit)

binary pointwise non-commutative chi_gt subop=operator> I(int) I(int) I(IA_Bit)
binary pointwise non-commutative chi_gt subop=operator> I(int) int I(IA_Bit)
binary pointwise non-commutative chi_gt subop=operator> int I(int) I(IA_Bit)
d120 3
d124 2
d127 13
d143 1
a143 1
binary pointwise commutative max I(int) int I(int)
d145 1
a145 1
binary pointwise commutative min I(int) int I(int)
@


1.4
log
@reductions require a zero now.
@
text
@d8 4
a11 1
conversion I(int) I(u_char)
d13 1
d33 4
d43 2
d116 21
a136 21
binary pointwise non-commutative chi_lt subop=operator< I(int) I(int) I(int)
binary pointwise non-commutative chi_lt subop=operator< I(int) int I(int)
binary pointwise non-commutative chi_lt subop=operator< int I(int) I(int)

binary pointwise non-commutative chi_le subop=operator<= I(int) I(int) I(int)
binary pointwise non-commutative chi_le subop=operator<= I(int) int I(int)
binary pointwise non-commutative chi_le subop=operator<= int I(int) I(int)

binary pointwise commutative chi_eq subop=operator== I(int) I(int) I(int)
binary pointwise commutative chi_eq subop=operator== I(int) int I(int)

binary pointwise commutative chi_ne subop=operator!= I(int) I(int) I(int)
binary pointwise commutative chi_ne subop=operator!= I(int) int I(int)

binary pointwise non-commutative chi_ge subop=operator>= I(int) I(int) I(int)
binary pointwise non-commutative chi_ge subop=operator>= I(int) int I(int)
binary pointwise non-commutative chi_ge subop=operator>= int I(int) I(int)

binary pointwise non-commutative chi_gt subop=operator> I(int) I(int) I(int)
binary pointwise non-commutative chi_gt subop=operator> I(int) int I(int)
binary pointwise non-commutative chi_gt subop=operator> int I(int) I(int)
@


1.3
log
@operator- between IntDI and int was misspecified
product reduction is now supported.
@
text
@d137 4
a140 4
reduction sum subop=operator+ int I(int)
reduction product subop=operator* int I(int)
reduction max subop=max int I(int)
reduction min subop=min int I(int)
@


1.2
log
@pointwise operations now named "chi" instead of "pwise".
@
text
@d18 1
a18 1
binary pointwise non-commutative operator- I(int) char I(int)
d138 1
@


1.1
log
@Initial revision
@
text
@d106 3
a108 3
binary pointwise non-commutative pwise_lt subop=operator< I(int) I(int) I(int)
binary pointwise non-commutative pwise_lt subop=operator< I(int) int I(int)
binary pointwise non-commutative pwise_lt subop=operator< int I(int) I(int)
d110 3
a112 3
binary pointwise non-commutative pwise_le subop=operator<= I(int) I(int) I(int)
binary pointwise non-commutative pwise_le subop=operator<= I(int) int I(int)
binary pointwise non-commutative pwise_le subop=operator<= int I(int) I(int)
d114 2
a115 2
binary pointwise commutative pwise_eq subop=operator== I(int) I(int) I(int)
binary pointwise commutative pwise_eq subop=operator== I(int) int I(int)
d117 2
a118 2
binary pointwise commutative pwise_ne subop=operator!= I(int) I(int) I(int)
binary pointwise commutative pwise_ne subop=operator!= I(int) int I(int)
d120 3
a122 3
binary pointwise non-commutative pwise_ge subop=operator>= I(int) I(int) I(int)
binary pointwise non-commutative pwise_ge subop=operator>= I(int) int I(int)
binary pointwise non-commutative pwise_ge subop=operator>= int I(int) I(int)
d124 3
a126 3
binary pointwise non-commutative pwise_gt subop=operator> I(int) I(int) I(int)
binary pointwise non-commutative pwise_gt subop=operator> I(int) int I(int)
binary pointwise non-commutative pwise_gt subop=operator> int I(int) I(int)
d137 1
a137 1
reduction reduce_plus subop=operator+ int I(int)
@
