head	1.3;
access;
symbols
	bobbase:1.3
	bob:1.3
	r2_1:1.3
	r2_0:1.3
	r1_1_beta:1.3
	r1_1_alpha:1.3
	r1_0:1.3
	r0_11:1.3
	r0_10:1.2
	r0_9:1.2;
locks; strict;
comment	@# @;


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

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

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


desc
@descriptions of all float DT convolutions.
@


1.3
log
@Rehack of template operation specifications.
@
text
@#
#	Copyright 1993, Center for Computer Vision and Visualization,
#	University of Florida.  All rights reserved.
#

#
# $Log: float-convolutions.desc,v $
# Revision 1.2  1993/11/17  18:32:16  thoth
# forward convolutions are now supported.
# template reductions are now supported.
# minimax ring products are now supported.
#
# Revision 1.1  1993/09/15  13:02:58  thoth
# Initial revision
#
# Revision 1.2  93/05/27  11:41:03  thoth
# Copyright Notices
# 
# Revision 1.1  93/05/26  17:16:30  thoth
# Initial revision
# 
# Revision 1.2  93/05/18  21:44:57  thoth
# New more descriptive names for standard convolutions.
# 
# Revision 1.1  93/03/18  11:23:20  thoth
# Initial revision
# 

convolution linear_product zero=0 I(float) I(float) T(float)
init:	RTYPE	a = ZERO;
accum:	a += IVAL * TVAL;
final:	IRESULT = a;
end

convolution linear_product zero=0 I(float) T(float) I(float)
accum:	a += IVAL * TVAL;
final:	IRESULT = a;
init:	RTYPE	a = ZERO;
accvar:	IRESULT += IVAL*TVAL;
end

#

convolution addmax_product zero=-infinity() I(float) I(float) T(float)
init:	RTYPE	a=ZERO;
accum:	register IBTYPE ival = IVAL; if (ival == ZERO) continue; RTYPE temp = ival+TVAL; if (temp > a) a = temp;
accvar:	RTYPE temp = IVAL+TVAL; if (temp > a) a = temp;
final:	IRESULT = a;
end

convolution addmax_product zero=-infinity() I(float) T(float) I(float)
accum:	register IBTYPE ival = IVAL; if (ival == ZERO) continue; RTYPE temp = ival+TVAL; if (temp > a) a = temp;
final:	IRESULT = a;
init:	RTYPE	a=ZERO;
accvar:	RTYPE temp = IVAL+TVAL; if (temp > IRESULT) IRESULT = temp;
end

#

convolution addmin_product zero=infinity() I(float) I(float) T(float)
init:	RTYPE	a=ZERO;
accum:	register IBTYPE ival = IVAL; if (ival == ZERO) continue; RTYPE temp = ival+TVAL; if (temp < a) a = temp;
accvar:	RTYPE temp = IVAL+TVAL; if (temp < a) a = temp;
final:	IRESULT = a;
end

convolution addmin_product zero=infinity() I(float) T(float) I(float)
accum:	register IBTYPE ival = IVAL; if (ival == ZERO) continue; RTYPE temp = ival+TVAL; if (temp < a) a = temp;
final:	IRESULT = a;
init:	RTYPE	a=ZERO;
accvar:	RTYPE temp = IVAL+TVAL; if (temp < IRESULT) IRESULT = temp;
end

#

convolution multmax_product zero=-infinity() I(float) I(float) T(float)
init:	RTYPE	a=ZERO;
accum:	RTYPE temp = IVAL*TVAL; if (temp > a) a = temp;
final:	IRESULT = a;
end

convolution multmax_product zero=-infinity() I(float) T(float) I(float)
accum:	RTYPE temp = IVAL*TVAL; if (temp > a) a = temp;
final:	IRESULT = a;
init:	RTYPE	a=ZERO;
accvar:	RTYPE temp = IVAL*TVAL; if (temp > IRESULT) IRESULT = temp;
end

#

convolution multmin_product zero=infinity() I(float) I(float) T(float)
init:	RTYPE	a=ZERO;
accum:	RTYPE temp = IVAL*TVAL; if (temp < a) a = temp;
final:	IRESULT = a;
end

convolution multmin_product zero=infinity() I(float) T(float) I(float)
accum:	RTYPE temp = IVAL*TVAL; if (temp < a) a = temp;
final:	IRESULT = a;
init:	RTYPE	a=ZERO;
accvar:	RTYPE temp = IVAL*TVAL; if (temp < IRESULT) IRESULT = temp;
end

#
#

reduction sum zero=0 I(float) T(float)
accum:	IRESULT += TVAL;
end

reduction max zero=-infinity() I(float) T(float)
accum:	if (TVAL>IRESULT) IRESULT = TVAL;
end

reduction min zero=infinity() I(float) T(float)
accum:	if (TVAL<IRESULT) IRESULT = TVAL;
end
@


1.2
log
@forward convolutions are now supported.
template reductions are now supported.
minimax ring products are now supported.
@
text
@d8 5
d29 1
a29 1
convolution float linear_product float float zero=0
a32 2
forw_init:	IRESULT=ZERO;
forw_accumvar:	IRESULT += IVAL*TVAL;
d35 10
a44 1
convolution float addmax_product float float  zero=-infinity()
a48 2
forw_init:	IRESULT=ZERO;
forw_accumvar:	RTYPE temp = IVAL+TVAL; if (temp > IRESULT) IRESULT = temp;
d51 3
a53 1
convolution float addmin_product float float  zero=infinity()
d55 7
a64 2
forw_init:	IRESULT=ZERO;
forw_accumvar:	RTYPE temp = IVAL+TVAL; if (temp < IRESULT) IRESULT = temp;
d67 3
a69 1
convolution float multmax_product float float  zero=-infinity()
d71 7
a79 2
forw_init:	IRESULT=ZERO;
forw_accumvar:	RTYPE temp = IVAL*TVAL; if (temp > IRESULT) IRESULT = temp;
d82 3
a84 1
convolution float multmin_product float float  zero=infinity()
d86 7
a94 2
forw_init:	IRESULT=ZERO;
forw_accumvar:	RTYPE temp = IVAL*TVAL; if (temp < IRESULT) IRESULT = temp;
d97 6
d104 4
a107 1
reduction float sum float zero=0
d111 1
a111 1
reduction float max float zero=-infinity()
d115 1
a115 1
reduction float min float zero=infinity()
@


1.1
log
@Initial revision
@
text
@d7 4
a10 1
# $Log:	float-convolutions.desc,v $
d24 2
a25 2
float linear_product float float zero=0
init:	RTYPE	a = 0;
d28 3
d32 1
a32 1
float addmax_product float float  zero=-infinity()
d37 3
d41 1
a41 1
float addmin_product float float  zero=infinity()
d46 32
@
