scale.score.dependence.omega.omegaLib
Class FAnd

java.lang.Object
  extended by scale.score.dependence.omega.omegaLib.Formula
      extended by scale.score.dependence.omega.omegaLib.FAnd

public class FAnd
extends Formula

FAnd.

$Id: FAnd.java,v 1.14 2005-02-07 21:28:39 burrill Exp $

Copyright 2008 by the Scale Compiler Group,
Department of Computer Science
University of Massachusetts,
Amherst MA. 01003, USA
All Rights Reserved.

This version of the Omega Libray is a translation from C++ to Java of the Omega Library developed at the University of Maryland.

Copyright (C) 1994-1996 by the Omega Project

All rights reserved.

NOTICE: This software is provided ``as is'', without any warranty, including any implied warranty for merchantability or fitness for a particular purpose. Under no circumstances shall the Omega Project or its agents be liable for any use of, misuse of, or inability to use this software, including incidental and consequential damages.

License is hereby given to use, modify, and redistribute this software, in whole or in part, for any purpose, commercial or non-commercial, provided that the user agrees to the terms of this copyright notice, including disclaimer of warranty, and provided that this copyright notice, including disclaimer of warranty, is preserved in the source code and documentation of anything derived from this software. Any redistributor of this software or anything derived from this software assumes responsibility for ensuring that any parties to whom such a redistribution is made are fully aware of the terms of this license and disclaimer.

The Omega project can be contacted at omega@cs.umd.edu or http://www.cs.umd.edu/projects/omega


Field Summary
 
Fields inherited from class scale.score.dependence.omega.omegaLib.Formula
myChildren, myParent, myRelation, omegaLib, OP_AND, OP_CONJUNCT, OP_EXISTS, OP_FORALL, OP_NOT, OP_OR, OP_RELATION
 
Constructor Summary
FAnd(OmegaLib omegaLib, Formula p, RelBody r)
           
 
Method Summary
 EQHandle addEQ(boolean preserves_level)
           
 EQHandle addEQ(ConstraintHandle constraint, boolean preserves_level)
           
 GEQHandle addGEQ(boolean preserves_level)
          "preserves level" should be false unless we know this will not change the "level" of the constraints - ie the number of leading corresponding in,out variables known to be equal
 GEQHandle addGEQ(ConstraintHandle constraint, boolean preserves_level)
           
 EQHandle addStride(int step, boolean preserves_level)
           
 void addUnknown()
           
 FAnd andWith()
           
 void beautify()
           
 Formula copy(Formula parent, RelBody reln)
           
 DNF DNFize()
          Try to separate positive and negative clauses below the AND, letting us use the techniques described in Pugh & Wonnacott: "An Exact Method for Value-Based Dependence Analysis"
 Conjunct findAvailableConjunct()
           
 int nodeType()
           
 void prefixPrint(boolean debug)
           
 void printSeparator()
           
 int priority()
           
 
Methods inherited from class scale.score.dependence.omega.omegaLib.Formula
addAnd, addChild, addConjunct, addExists, addExists, addForall, addNot, addOr, assertNotFinalized, canAddChild, checkAndAddChild, children, combineColumns, delete, enforceLeadingInfo, getChildren, getFirstChild, invalidateLeadingInfo, numberOfChildren, olAssert, olAssert, parent, print, pushExists, reallyConjunct, rearrange, relation, remap, removeChild, removeFirstChild, reverseLeadingDirInfo, setFinalized, setParent, setParent, setRelation, setupNames, toString, toStringClass, verifytree
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

FAnd

public FAnd(OmegaLib omegaLib,
            Formula p,
            RelBody r)
Method Detail

nodeType

public int nodeType()
Specified by:
nodeType in class Formula

addGEQ

public GEQHandle addGEQ(boolean preserves_level)
"preserves level" should be false unless we know this will not change the "level" of the constraints - ie the number of leading corresponding in,out variables known to be equal


addEQ

public EQHandle addEQ(boolean preserves_level)

addStride

public EQHandle addStride(int step,
                          boolean preserves_level)

addEQ

public EQHandle addEQ(ConstraintHandle constraint,
                      boolean preserves_level)

addGEQ

public GEQHandle addGEQ(ConstraintHandle constraint,
                        boolean preserves_level)

andWith

public FAnd andWith()
Overrides:
andWith in class Formula

addUnknown

public void addUnknown()

copy

public Formula copy(Formula parent,
                    RelBody reln)
Specified by:
copy in class Formula

findAvailableConjunct

public Conjunct findAvailableConjunct()
Specified by:
findAvailableConjunct in class Formula

priority

public int priority()
Overrides:
priority in class Formula

beautify

public void beautify()
Overrides:
beautify in class Formula

printSeparator

public void printSeparator()
Overrides:
printSeparator in class Formula

DNFize

public DNF DNFize()
Try to separate positive and negative clauses below the AND, letting us use the techniques described in Pugh & Wonnacott: "An Exact Method for Value-Based Dependence Analysis"

Specified by:
DNFize in class Formula

prefixPrint

public void prefixPrint(boolean debug)
Overrides:
prefixPrint in class Formula