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


1.11
date	94.12.19.19.58.48;	author ljr;	state Exp;
branches
	1.11.1.1;
next	1.10;

1.10
date	94.10.14.20.43.19;	author thoth;	state Exp;
branches;
next	1.9;

1.9
date	94.09.16.14.59.10;	author thoth;	state Exp;
branches;
next	1.8;

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

1.7
date	94.05.17.12.54.56;	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.15.54.56;	author thoth;	state Exp;
branches;
next	1.4;

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

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

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

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

1.11.1.1
date	94.12.28.18.05.25;	author thoth;	state Exp;
branches;
next	1.11.1.2;

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


desc
@descriptions of all float image operations.
@


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

#
# $Log: float-operations.desc,v $
# Revision 1.10  1994/10/14  20:43:19  thoth
# The inline is much more useful in the header file.
#
# Revision 1.9  1994/09/16  14:59:10  thoth
# add fabs(image)
#
# Revision 1.8  1994/07/08  16:14:11  thoth
# fixed problems caused by returning floats instead of doubles.
#
# Revision 1.7  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.
#

# Float operations for the Float Discrete Image

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

filename FIO-cnBit.c
constructor I(float) I(IA_Bit)
filename FIO-cnuchar.c
constructor I(float) I(u_char)
filename FIO-cnint.c
constructor I(float) I(int)
filename FIO-to_int.c
unary pointwise to_int subop=int I(int) I(float)
filename FIO-to_uchar.c
unary pointwise to_uchar subop=u_char I(u_char) I(float)


filename FIO-__pl.c
binary pointwise commutative operator+ I(float) I(float) I(float)
binary pointwise commutative operator+ I(float) I(float) float
pointwise operator+= I(float) I(float)
pointwise operator+= I(float) float

filename FIO-__mi.c
binary pointwise non-commutative operator- I(float) I(float) I(float)
binary pointwise non-commutative operator- I(float) I(float) float
binary pointwise non-commutative operator- I(float) float I(float)
unary pointwise operator- I(float) I(float)
pointwise operator-= I(float) I(float)
pointwise operator-= I(float) float

filename FIO-__ml.c
binary pointwise commutative operator* I(float) I(float) I(float)
binary pointwise commutative operator* I(float) I(float) float
pointwise operator*= I(float) I(float)
pointwise operator*= I(float) float

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

filename FIO-__dv.c
binary pointwise non-commutative operator/ I(float) I(float) I(float)
binary pointwise non-commutative operator/ I(float) I(float) float
binary pointwise non-commutative operator/ I(float) float I(float)
pointwise operator/= I(float) I(float)
pointwise operator/= I(float) float

"Cinline float pseudo_div(float a, float b)
"C{
"C    return (b==0) ? 0 : (a/b);
"C}
"C
"Cinline float pseudo_inv(float b)
"C{
"C    return (b==0) ? 0 : (1/b);
"C}
binary pointwise non-commutative pseudo_div I(float) I(float) I(float)
binary pointwise non-commutative pseudo_div I(float) I(float) float
binary pointwise non-commutative pseudo_div I(float) float I(float)
unary pointwise pseudo_inv I(float) I(float)



filename FIO-__aa.c
binary pointwise commutative operator&& I(float) I(float) I(float)
binary pointwise commutative operator&& I(float) I(float) float

filename FIO-__oo.c
binary pointwise commutative operator|| I(float) I(float) I(float)
binary pointwise commutative operator|| I(float) I(float) float

filename FIO-__nt.c
unary pointwise operator! I(float) I(float)



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

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

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

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

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

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

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

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

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

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

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

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




filename FIO-libm.c
"Ctemplate <class T>
"Cinline T sqr(T v)
"C{
"C    return v*v;
"C}
unary pointwise sqrt I(float) I(float)
unary pointwise sqr I(float) I(float)
unary pointwise fabs I(float) I(float)
"H inline IA_Image<IA_Point<int>,float> abs(IA_Image<IA_Point<int>,float> i) {
"H     return fabs(i);
"H }

unary pointwise cos I(float) I(float)
unary pointwise sin I(float) I(float)
unary pointwise tan I(float) I(float)

unary pointwise exp I(float) I(float)
unary pointwise log I(float) I(float)

unary pointwise ceil I(float) I(float)
unary pointwise floor I(float) I(float)


filename FIO-minmax.c
"Cinline double max(double a, double b)
"C{
"C    return (a<b)?b:a;
"C}
binary pointwise commutative max I(float) I(float) I(float)
binary pointwise commutative max I(float) I(float) float
"Cinline double min(double a, double b)
"C{
"C    return (a<b)?a:b;
"C}
binary pointwise commutative min I(float) I(float) I(float)
binary pointwise commutative min I(float) I(float) float

filename FIO-reduce.c
reduction sum zero=0 subop=operator+ float I(float)
reduction product zero=1 subop=operator* float I(float)
"Cinline double max(double a, double b)
"C{
"C    return (a<b)?b:a;
"C}
reduction max zero=infinity() subop=max double I(float)
"Cinline double min(double a, double b)
"C{
"C    return (a<b)?a:b;
"C}
reduction min zero=-infinity() subop=min double I(float)
@


1.11.1.1
log
@image operations are now friendly with FBI.
image ops now use operations table
new sgn() function.
@
text
@a8 3
# Revision 1.11  1994/12/19  19:58:48  ljr
# DOS-inspired name rework.
#
a31 2
"C#include "FBI.h"
"C#include "../valueset/OpTable.h"
d175 3
a177 10
"Hf inline IA_Image<IA_Point<int>,float> abs(IA_Image<IA_Point<int>,float> i) {
"Hf     return fabs(i);
"Hf }

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


1.11.1.2
log
@Need to replace the upward conversions with something...
@
text
@a8 5
# Revision 1.11.1.1  1994/12/28  18:05:25  thoth
# image operations are now friendly with FBI.
# image ops now use operations table
# new sgn() function.
#
d39 6
@


1.10
log
@The inline is much more useful in the header file.
@
text
@d9 3
d135 1
a135 1
filename FIO-chi_lt.c
d140 1
a140 1
filename FIO-chi_le.c
d145 1
a145 1
filename FIO-chi_eq.c
d149 1
a149 1
filename FIO-chi_ne.c
d153 1
a153 1
filename FIO-chi_ge.c
d158 1
a158 1
filename FIO-chi_gt.c
@


1.9
log
@add fabs(image)
@
text
@d9 3
d172 3
a174 3
"C inline IA_Image<IA_Point<int>,float> abs(IA_Image<IA_Point<int>,float> i) {
"C     return fabs(i);
"C }
@


1.8
log
@fixed problems caused by returning floats instead of doubles.
@
text
@d9 3
d169 3
@


1.7
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 $
d179 1
a179 2
"Ctemplate <class T>
"Cinline T max(T a, T b)
d185 1
a185 2
"Ctemplate <class T>
"Cinline T min(T a, T b)
d195 1
a195 2
"Ctemplate <class T>
"Cinline T max(T a, T b)
d199 2
a200 3
reduction max zero=infinity() subop=max float I(float)
"Ctemplate <class T>
"Cinline T min(T a, T b)
d204 1
a204 1
reduction min zero=-infinity() subop=min float I(float)
@


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
@d1 1
d7 10
a16 1
# Integer operations for the Int Discrete Image
d18 1
d20 1
d22 1
d24 1
d26 1
d30 1
a30 1

d36 1
d44 1
d50 1
d55 1
d62 9
d78 1
d82 1
d86 1
d91 1
d96 1
d101 1
d105 1
d109 1
d114 1
d119 1
d124 1
d129 1
d133 1
d137 1
d142 1
d149 7
d171 6
d179 5
d187 1
d190 5
d196 5
@


1.5
log
@chi functions now return BitDIs.
more pointwise float functions.
@
text
@d17 1
a17 1
binary pointwise commutative operator+ I(float) float I(float)
d22 1
a23 1
binary pointwise non-commutative operator- float I(float) I(float)
d29 1
a29 1
binary pointwise commutative operator* I(float) float I(float)
d33 2
a34 2
#binary pointwise commutative operator* I(float) I(IA_Bit) I(float)
#binary pointwise commutative operator* float I(IA_Bit) I(float)
d38 1
a39 1
binary pointwise non-commutative operator/ float I(float) I(float)
d44 1
a45 1
binary pointwise non-commutative pseudo_div float I(float) I(float)
d51 1
a51 1
binary pointwise commutative operator&& I(float) float I(float)
d54 1
a54 1
binary pointwise commutative operator|| I(float) float I(float)
d60 3
a62 3
binary strictrel non-commutative operator< I(float) I(float) int
binary strictrel non-commutative operator< I(float) float int
binary strictrel non-commutative operator< float I(float) int
d64 3
a66 3
binary strictrel non-commutative operator<= I(float) I(float) int
binary strictrel non-commutative operator<= I(float) float int
binary strictrel non-commutative operator<= float I(float) int
d68 2
a69 2
binary strictrel commutative operator== I(float) I(float) int
binary strictrel commutative operator== I(float) float int
d71 2
a72 2
binary strictrel commutative strict_ne subop=operator!= I(float) I(float) int
binary strictrel commutative strict_ne subop=operator!= I(float) float int
d74 3
a76 3
binary strictrel non-commutative operator>= I(float) I(float) int
binary strictrel non-commutative operator>= I(float) float int
binary strictrel non-commutative operator>= float I(float) int
d78 3
a80 3
binary strictrel non-commutative operator> I(float) I(float) int
binary strictrel non-commutative operator> I(float) float int
binary strictrel non-commutative operator> float I(float) int
d82 3
a84 3
binary pointwise non-commutative chi_lt subop=operator< I(float) I(float) I(IA_Bit)
binary pointwise non-commutative chi_lt subop=operator< I(float) float I(IA_Bit)
binary pointwise non-commutative chi_lt subop=operator< float I(float) I(IA_Bit)
d86 3
a88 3
binary pointwise non-commutative chi_le subop=operator<= I(float) I(float) I(IA_Bit)
binary pointwise non-commutative chi_le subop=operator<= I(float) float I(IA_Bit)
binary pointwise non-commutative chi_le subop=operator<= float I(float) I(IA_Bit)
d90 2
a91 2
binary pointwise commutative chi_eq subop=operator== I(float) I(float) I(IA_Bit)
binary pointwise commutative chi_eq subop=operator== I(float) float I(IA_Bit)
d93 2
a94 2
binary pointwise commutative chi_ne subop=operator!= I(float) I(float) I(IA_Bit)
binary pointwise commutative chi_ne subop=operator!= I(float) float I(IA_Bit)
d96 3
a98 3
binary pointwise non-commutative chi_ge subop=operator>= I(float) I(float) I(IA_Bit)
binary pointwise non-commutative chi_ge subop=operator>= I(float) float I(IA_Bit)
binary pointwise non-commutative chi_ge subop=operator>= float I(float) I(IA_Bit)
d100 3
a102 3
binary pointwise non-commutative chi_gt subop=operator> I(float) I(float) I(IA_Bit)
binary pointwise non-commutative chi_gt subop=operator> I(float) float I(IA_Bit)
binary pointwise non-commutative chi_gt subop=operator> float I(float) I(IA_Bit)
d122 1
a122 1
binary pointwise commutative max I(float) float I(float)
d124 1
a124 1
binary pointwise commutative min I(float) float I(float)
@


1.4
log
@reductions require a zero now.
@
text
@d8 3
a10 2
conversion I(float) I(u_char)
conversion I(float) I(int)
d33 4
d82 21
a102 21
binary pointwise non-commutative chi_lt subop=operator< I(float) I(float) I(int)
binary pointwise non-commutative chi_lt subop=operator< I(float) float I(int)
binary pointwise non-commutative chi_lt subop=operator< float I(float) I(int)

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

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

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

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

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


1.3
log
@pseudo-division is now available.
product reduction is now available.
@
text
@d108 4
a111 4
reduction sum subop=operator+ float I(float)
reduction product subop=operator* float I(float)
reduction max subop=max float I(float)
reduction min subop=min float I(float)
@


1.2
log
@pointwise operations now named "chi" instead of "pwise".
@
text
@d38 4
a44 1

d108 2
a109 1
reduction reduce_plus subop=operator+ float I(float)
@


1.1
log
@Initial revision
@
text
@d74 3
a76 3
binary pointwise non-commutative pwise_lt subop=operator< I(float) I(float) I(int)
binary pointwise non-commutative pwise_lt subop=operator< I(float) float I(int)
binary pointwise non-commutative pwise_lt subop=operator< float I(float) I(int)
d78 3
a80 3
binary pointwise non-commutative pwise_le subop=operator<= I(float) I(float) I(int)
binary pointwise non-commutative pwise_le subop=operator<= I(float) float I(int)
binary pointwise non-commutative pwise_le subop=operator<= float I(float) I(int)
d82 2
a83 2
binary pointwise commutative pwise_eq subop=operator== I(float) I(float) I(int)
binary pointwise commutative pwise_eq subop=operator== I(float) float I(int)
d85 2
a86 2
binary pointwise commutative pwise_ne subop=operator!= I(float) I(float) I(int)
binary pointwise commutative pwise_ne subop=operator!= I(float) float I(int)
d88 3
a90 3
binary pointwise non-commutative pwise_ge subop=operator>= I(float) I(float) I(int)
binary pointwise non-commutative pwise_ge subop=operator>= I(float) float I(int)
binary pointwise non-commutative pwise_ge subop=operator>= float I(float) I(int)
d92 3
a94 3
binary pointwise non-commutative pwise_gt subop=operator> I(float) I(float) I(int)
binary pointwise non-commutative pwise_gt subop=operator> I(float) float I(int)
binary pointwise non-commutative pwise_gt subop=operator> float I(float) I(int)
@
