All Packages Class Hierarchy This Package Previous Next Index
Class logic.BooleanTupleFactory
java.lang.Object

+logic.BooleanTupleFactory
 public class BooleanTupleFactory
 extends Object

BooleanTupleFactory()


computeIndicesOfStarredCols(String)
 Places the positions of '*' in s into an array.

countStars(String)
 Counts the number of '*'s that occur in s

countTuples(String)
 Counts the number of boolean strings (like "TFFTF") that will be derived
from s.

getBoolean(char)
 Converts 'T' and 'F' to the corresponding Booleans

getTuple(String)
 This method returns a vector of Booleans, wrapped in a BooleanTuple, that
corresponds to a boolean String like "TTFFF".

getTuples(String)

This method generates the array of BooleanTuples that is generated from
the boolean String tf (like "TT**F")  a String that may contain '*'s.

main(String[])
 The purpose of this main method is to verify that the truthTable(..) method
produces correct output.

obtainBoolChar(int, int, char, int[])
 If character c is just 'T' or 'F', this method just returns c.

truthTable(int, int, int)
 This function computes the truth value (true = 0, false = 1) that
appears in a standard truth table having numStarCols propositional symbols,
where starCol is the requested column index and row is the requested row
index.
BooleanTupleFactory
public BooleanTupleFactory()
computeIndicesOfStarredCols
private static int[] computeIndicesOfStarredCols(String s)
 Places the positions of '*' in s into an array. Returns an empty (nonnull)
array if there are no '*'s.
countStars
private static int countStars(String s)
 Counts the number of '*'s that occur in s
countTuples
private static int countTuples(String s)
 Counts the number of boolean strings (like "TFFTF") that will be derived
from s. If s has no stars, the return value is 1. If 1 star, the value is
2. In general, the return value is 2^num_stars
getBoolean
private static Boolean getBoolean(char c)
 Converts 'T' and 'F' to the corresponding Booleans
getTuple
private static BooleanTuple getTuple(String tf) throws NestingTooDeepException
 This method returns a vector of Booleans, wrapped in a BooleanTuple, that
corresponds to a boolean String like "TTFFF". Used by getTuples(..).
This method does not handle Strings that contain stars, and assumes
that all characters in tf are either 'T' or 'F'
getTuples
public static BooleanTuple[] getTuples(String tf) throws NestingTooDeepException
 This method generates the array of BooleanTuples that is generated from
the boolean String tf (like "TT**F")  a String that may contain '*'s.
We first generate all possible boolean strings that don't have stars,
then convert to BooleanTuples.
For example, if tf is "TT**F", this method first generates an array
of four nonstar boolean Strings as follows:
0: "TTTTF"
1: "TTTFF"
2: "TTFTF"
3: "TTFFF"
These four rows are thought of as a 2d array; the 0th "column" in this
example would be
T
T
T
T
In order to fill in the '*'s with all possible T's and F's, we use the
truthTable(..) method.
NOTE: Error handling is not being done in case conversion fails for some reason.
main
public static void main(String args[])
 The purpose of this main method is to verify that the truthTable(..) method
produces correct output. In body of main, we attempt to output the entire
truth table for 3 propositional symbols (with true = 0, false = 1).
Output appears in a file c:\out.txt.
obtainBoolChar
private static char obtainBoolChar(int col,
int row,
char c,
int indicesOfStarredCols[])
 If character c is just 'T' or 'F', this method just returns c. If c is a star, however,
then this method converts the column index of this star to the index of the
array indicesOfStarredCols that contains it, and then calls truthTable(..) to
determine whether, for the given column and row, the value should be 'T' or 'F'
NOTE: No error handling is done in case incorrect data is being passed around.
truthTable
public static int truthTable(int starCol,
int row,
int numStarCols)
 This function computes the truth value (true = 0, false = 1) that
appears in a standard truth table having numStarCols propositional symbols,
where starCol is the requested column index and row is the requested row
index. For instance, for three prop symbols, the truth table looks like this:
T T T
F T T
T F T
F F T
T T F
F T F
T F F
F F F
The way the algorithm works is this: To compute values in a truth table
having n columns, the algorithm makes use of the fact that to obtain
the values in columns 0...n2, you can use computations for the case of
n1 columns. This just leaves the n1st column to be computed. But (as you
can see from the example) the n1st column is easy to compute  return value
0 if the requested row is in the first half of the rows (i.e., less than
2^(total_num_columns1)), or value 1 if it's in the second half.
 Parameters:
 starCol   the index of the requested column
 row   the index of the requested tow
 numStarCols   total number of columns, which is the total num of prop symbols
 Returns:
 int  either 0 (true) or 1 (false)
All Packages Class Hierarchy This Package Previous Next Index