|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object scale.score.dependence.omega.omegaLib.Relation
public final class Relation
Relation.
$Id: Relation.java,v 1.15 2005-02-07 21:28:41 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 ProjectAll 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
Constructor Summary | |
---|---|
Relation(OmegaLib omegaLib)
|
|
Relation(OmegaLib omegaLib,
int nci)
|
|
Relation(OmegaLib omegaLib,
int numberInput,
int numberOutput)
Create a relation. |
|
Relation(OmegaLib omegaLib,
Relation r)
|
|
Relation(OmegaLib omegaLib,
RelBody r)
|
|
Relation(Relation r,
Conjunct c)
|
|
Relation(RelBody r)
|
|
Relation(RelBody r,
Conjunct c)
|
Method Summary | |
---|---|
FAnd |
addAnd()
|
FExists |
addExists()
|
FForall |
addForall()
|
FNot |
addNot()
|
FOr |
addOr()
|
Relation |
affineHull()
|
Relation |
after(int carried_by,
int new_output,
int dir)
|
FAnd |
andWith()
|
FAnd |
andWithAnd()
|
Relation |
approximate()
|
Relation |
approximate(boolean strides_allowed)
|
void |
calculateDimensions(Conjunct c,
int[] dims)
|
Relation |
checkForConvexPairs()
|
Relation |
checkForConvexRepresentation()
|
Relation |
complement()
complement. |
Relation |
composition(Relation r2)
Composition(F, G) = F o G, where F o G (x) = F(G(x)) That is, if F = { [i] . |
Relation |
conicClosure()
|
Relation |
conicHull()
|
Relation |
convexHull()
|
static int |
created()
|
Relation |
crossProduct(Relation input_B)
Cross Product. |
Relation |
decoupledConvexHull()
|
void |
delete()
|
Relation |
deltas()
Deltas(F) Return a set such that the ith variable is old Out_i - In_i Delta variables are created as input variables. |
Relation |
deltas(int eq_no)
|
Relation |
deltasToRelation(int numberInputs,
int numberOutputs)
|
Relation |
difference(Relation input_r2)
F minus G. |
Relation |
domain()
Domain and Range. |
boolean |
equal(Relation r2)
|
Relation |
extractDNFByCarriedLevel(int level,
int direction)
|
protected void |
finalize()
Keep the count of instances up-to-date. |
VarDecl |
getLocal(GlobalVarDecl G)
|
VarDecl |
getLocal(GlobalVarDecl G,
int of)
|
VarDecl |
getLocal(VarDecl v)
|
RelBody |
getRelBody()
|
Conjunct |
getSingleConjunct()
|
java.lang.Object |
getVar(java.lang.String name)
|
HashMap<java.lang.String,java.lang.Object> |
getVars()
|
Relation |
gist(Relation r2,
int effort)
Compute gist(r1) given r2. |
Relation |
gistSingleConjunct(Relation input_R2,
int effort)
Compute (gist r1 given r2). |
boolean |
hasSingleConjunct()
|
Relation |
hull(boolean stridesAllowed,
int effort,
Relation knownHull)
|
VarDecl |
inputVar(int nth)
|
Relation |
intersection(Relation input_r2)
F intersection G. |
Relation |
inverse()
inverse F -reverse the input and output tuples. |
boolean |
isDOK(Relation D,
Relation AxA)
Check if we can use D instead of R. |
boolean |
isLowerBoundSatisfiable()
|
boolean |
isNotSatisfiable()
|
boolean |
isObviousTautology()
|
boolean |
isSatisfiable()
|
boolean |
isSet()
|
boolean |
isUpperBoundDefinitelyNotSatisfiable()
|
boolean |
isUpperBoundSatisfiable()
|
Relation |
linearHull()
|
Relation |
makeLevelCarriedTo(int level)
|
void |
nameInputVar(int nth,
java.lang.String S)
|
void |
nameOutputVar(int nth,
java.lang.String S)
|
void |
nameSetVar(int nth,
java.lang.String S)
|
int |
numberInput()
|
int |
numberOfConjuncts()
|
int |
numberOutput()
|
int |
numberSet()
|
VarDecl |
outputVar(int nth)
|
void |
prefixPrint()
|
void |
prefixPrint(boolean debug)
|
void |
printWithSubs()
|
Relation |
project(GlobalVarDecl g)
Project out global variable g from relation r. |
Relation |
project(int pos,
int vkind)
Project an input, output or set variable, leaving a variable in that position with no constraints. |
Relation |
project(Vector<VarDecl> s)
|
Relation |
projectOnSym(Relation input_context)
Project away all input and output variables. |
Relation |
projectOntoJust(VarDecl v)
|
Relation |
projectSym()
Project all symbolic variables from relation r. |
void |
putVar(java.lang.String name,
java.lang.Object var)
|
boolean |
queryDifference(VarDecl v1,
VarDecl v2,
int[] bounds)
|
void |
queryVariableBounds(VarDecl v,
int[] bounds)
|
Relation |
range()
|
Conjunct |
removeFirstConjunct()
|
Relation |
restrictDomain(Relation input_r2)
F \ G (the relation F restricted to domain G). |
Relation |
restrictRange(Relation input_r2)
F / G (the relation F restricted to range G) align the output tuples for F and G match named variables in F and G formula is f & g |
void |
setFinalized()
|
VarDecl |
setVar(int nth)
|
void |
simplify()
|
java.lang.String |
toString()
|
Relation |
transitiveClosure0(int maxExpansion,
Relation iterationSpace)
Transitive closure of the relation containing multiple conjuncts. |
Relation |
tryConjunctTransitiveClosure(Relation IterationSpace,
Relation rPlus)
Try to get conjunct transitive closure. |
Relation |
union(Relation input_r2)
r1 Union r2. |
Relation |
vennDiagramForm(Relation Context_In)
|
Methods inherited from class java.lang.Object |
---|
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail |
---|
public Relation(OmegaLib omegaLib)
public Relation(OmegaLib omegaLib, int numberInput, int numberOutput)
public Relation(OmegaLib omegaLib, int nci)
public Relation(OmegaLib omegaLib, Relation r)
public Relation(OmegaLib omegaLib, RelBody r)
public Relation(Relation r, Conjunct c)
public Relation(RelBody r, Conjunct c)
public Relation(RelBody r)
Method Detail |
---|
public static int created()
protected void finalize() throws java.lang.Throwable
finalize
in class java.lang.Object
java.lang.Throwable
- [needs description]public void delete()
public java.lang.String toString()
toString
in class java.lang.Object
public void setFinalized()
public void putVar(java.lang.String name, java.lang.Object var)
public java.lang.Object getVar(java.lang.String name)
public HashMap<java.lang.String,java.lang.Object> getVars()
public RelBody getRelBody()
public FForall addForall()
public FExists addExists()
public FAnd addAnd()
public FAnd andWith()
public FOr addOr()
public FNot addNot()
public boolean isSet()
public int numberInput()
public int numberOutput()
public int numberSet()
public VarDecl inputVar(int nth)
public VarDecl outputVar(int nth)
public VarDecl setVar(int nth)
public VarDecl getLocal(VarDecl v)
public VarDecl getLocal(GlobalVarDecl G)
public VarDecl getLocal(GlobalVarDecl G, int of)
public void nameInputVar(int nth, java.lang.String S)
public void nameOutputVar(int nth, java.lang.String S)
public void nameSetVar(int nth, java.lang.String S)
public FAnd andWithAnd()
public void prefixPrint()
public void prefixPrint(boolean debug)
public void printWithSubs()
public boolean isLowerBoundSatisfiable()
public boolean isUpperBoundDefinitelyNotSatisfiable()
public boolean isUpperBoundSatisfiable()
public boolean isSatisfiable()
public boolean isNotSatisfiable()
public boolean isObviousTautology()
public int numberOfConjuncts()
public void simplify()
public Conjunct removeFirstConjunct()
public Conjunct getSingleConjunct()
public boolean hasSingleConjunct()
public boolean queryDifference(VarDecl v1, VarDecl v2, int[] bounds)
public void queryVariableBounds(VarDecl v, int[] bounds)
public Relation makeLevelCarriedTo(int level)
public Relation extractDNFByCarriedLevel(int level, int direction)
public void calculateDimensions(Conjunct c, int[] dims)
public Relation approximate()
public Relation approximate(boolean strides_allowed)
public Relation projectOnSym(Relation input_context)
public Relation project(GlobalVarDecl g)
public Relation projectSym()
public Relation project(int pos, int vkind)
public Relation project(Vector<VarDecl> s)
public Relation union(Relation input_r2)
public Relation intersection(Relation input_r2)
public Relation restrictDomain(Relation input_r2)
public Relation restrictRange(Relation input_r2)
public Relation domain()
public Relation range()
public Relation crossProduct(Relation input_B)
public Relation inverse()
public Relation after(int carried_by, int new_output, int dir)
public Relation deltas()
public Relation deltas(int eq_no)
public Relation deltasToRelation(int numberInputs, int numberOutputs)
public Relation composition(Relation r2)
public Relation difference(Relation input_r2)
public Relation complement()
public Relation gistSingleConjunct(Relation input_R2, int effort)
public Relation gist(Relation r2, int effort)
gist(r1)
given r2.
Relation r2
can have multiple conjuncts.
public Relation projectOntoJust(VarDecl v)
public Relation decoupledConvexHull()
public Relation convexHull()
public Relation affineHull()
public Relation linearHull()
public Relation conicHull()
public Relation conicClosure()
public Relation hull(boolean stridesAllowed, int effort, Relation knownHull)
public Relation checkForConvexPairs()
public Relation vennDiagramForm(Relation Context_In)
public Relation checkForConvexRepresentation()
public boolean isDOK(Relation D, Relation AxA)
public Relation tryConjunctTransitiveClosure(Relation IterationSpace, Relation rPlus)
public boolean equal(Relation r2)
public Relation transitiveClosure0(int maxExpansion, Relation iterationSpace)
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |