.\" $Id: polardupablexpr.3,v 1.1 2002/03/18 11:06:16 ludo Exp $ .\" @(#)polardupablexpr.2 2.7 96/07/02 ; Labo masi cao-vlsi; Author : Jacomme Ludovic .TH POLARDUPABLEXPR 3 "October 1, 1997" "ASIM/LIP6" "ABL FUNCTIONS" .SH NAME polardupablexpr \- duplicates an expression and moves down the inverters. .so buster/alliance/alc_origin.1.en.gz .SH SYNOPSYS .nf .if n \{\ .ft B \} .if t \{\ .ft CR \} #include "abl101.h" chain_list \(**polardupablexpr( Expr, Polar ) chain_list \(**Expr; int Polar; .ft R .fi .SH PARAMETERS .TP 20 \fIExpr\fP Expression to modify. .TP \fIPolar\fP Expression polarity. .SH DESCRIPTION \fBpolardupablexpr\fP modifies \fIExpr\fP by moving down the inverters to the atomic level. \fBpolardupablexpr\fP applies the Morgan's laws. If \fIPolar\fP is equal to ABL_POLAR_NEGATIVE the function returns the modified expression after having complemented it. .SH RETURN VALUE \fBpolardupablexpr\fP returns the modified expression. .SH EXAMPLE .ta 3n 6n 9n 12n 15n 18n 21n .nf .if n \{\ .ft B \} .if t \{\ .ft CR \} #include "abl101.h" chain_list \(**Expr1; chain_list \(**Expr2; Expr1 = createabloper( ABL_NOT ); Expr2 = createabloper( ABL_NOT ); addablhexpr( Expr1, createablatom( "a" ) ); addablhexpr( Expr2, Expr1 ); Expr1 = polardupablexpr( Expr2, ABL_POLAR_POSITIVE ); /* displays a */ viewablexpr( Expr1, ABL_VIEW_VHDL ); .ft R .fi .SH SEE ALSO .BR abl (1) .so buster/alliance/alc_bug_report.1.en.gz