jhypercomplex.multiplication_tables
Class MultiplicationTable

java.lang.Object
  extended by jhypercomplex.multiplication_tables.MultiplicationTable
Direct Known Subclasses:
OctonionMultiplicationTable, SignTable

public class MultiplicationTable
extends java.lang.Object


Constructor Summary
MultiplicationTable()
           
MultiplicationTable(java.lang.String[][] table, java.lang.String[] basis)
           
 
Method Summary
static java.lang.String[][] getComparisonTable(java.lang.String[][] table1, java.lang.String[][] table2)
          Compares the entries of two multiplication tables.
static java.lang.String[][] getCopy(java.lang.String[][] table)
           
static double getDeterminant2(double[][] mat)
           
 java.lang.String[][] getMultTableAsArray()
           
 java.lang.String getMultTableAsHtml()
           
 java.lang.String getMultTableAsHtml(boolean without_html_tags)
           
static java.lang.String getMultTableAsHtml(java.lang.String[] basis, java.lang.String[][] m_table)
           
static java.lang.String getMultTableAsHtml(java.lang.String[] basis, java.lang.String[][] m_table, boolean without_html_tags)
           
static java.lang.String getMultTableListAsHtml(java.util.LinkedList<MultiplicationTable> table_list)
           
 java.lang.String getMultTableStringDelimited(java.lang.String delimiter)
           
static java.lang.String getMultTableStringDelimited(java.lang.String[][] m_table, java.lang.String delimiter)
           
 java.lang.String[][] getNormedMultiplicationTable()
           
static java.lang.String[][] getNormedMultiplicationTable(java.lang.String[][] mult_table, java.lang.String[] sub_basis)
          A normed multiplication table is per definition a table where the base elements are numbered according to the order of their occurrence in the basis vector (integers running from 1 upwards).
 java.lang.String getNormedMultTableStringDelimited(java.lang.String delimiter)
           
 java.lang.String[][] getSignTable()
           
static java.lang.String[][] getSignTable(java.lang.String[][] mtable)
           
 java.lang.String getSignTableAsHtml()
           
static java.lang.String getSignTableAsHtml(java.lang.String[][] m_table)
           
 java.lang.String getSignTableStringDelimited(java.lang.String delimiter)
           
 int getSize()
          Dimension of the square matrix defining the multiplication table.
static java.lang.String[][] getTableView(java.lang.String[][] table, java.lang.String bitmap)
           
 java.lang.String getUnsignedMultTableStringDelimited(java.lang.String delimiter)
           
 java.lang.String[][] getUnsignedTable()
           
static java.lang.String[][] getUnsignedTable(java.lang.String[][] mtable)
           
static boolean isAntiSymmetrical(java.lang.String[][] m_table)
           
static boolean isEqualTables(java.lang.String[][] table1, java.lang.String[][] table2)
           
 boolean isFanoPlane()
          Checks if the table is isomorphic to one of the 30 Fano planes.
static java.lang.String[][] swapColumns(java.lang.String[][] table, int col1, int col2)
          Swaps two colums of the multiplication table.
static java.lang.String[][] swapRows(java.lang.String[][] table, int row1, int row2)
          Swaps two rows of the multiplication table.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MultiplicationTable

public MultiplicationTable()

MultiplicationTable

public MultiplicationTable(java.lang.String[][] table,
                           java.lang.String[] basis)
Method Detail

getSize

public int getSize()
Dimension of the square matrix defining the multiplication table.


getMultTableAsArray

public java.lang.String[][] getMultTableAsArray()

isEqualTables

public static boolean isEqualTables(java.lang.String[][] table1,
                                    java.lang.String[][] table2)
Parameters:
table1 - Multiplication table 1.
table2 - Multiplication table 2.
Returns:
'True' if table entries are the same, 'false' otherwise.

getComparisonTable

public static java.lang.String[][] getComparisonTable(java.lang.String[][] table1,
                                                      java.lang.String[][] table2)
Compares the entries of two multiplication tables.

Parameters:
table1 - Multiplication table 1.
table2 - Multiplication table 2.
Returns:
The "comparison table" which has the entry of the original tables if their entries are the the entry of table 1 and table 2, seperated by a '/'. Example: e e1/a -e1/-a -e I.e. the diagonal elements are the same, the off-diagonal are different.

getNormedMultiplicationTable

public java.lang.String[][] getNormedMultiplicationTable()
Returns:
Full normed multiplication table.

getSignTable

public static java.lang.String[][] getSignTable(java.lang.String[][] mtable)
Returns:
Matrix of signs of the structure constants of the multiplication table.

getUnsignedTable

public static java.lang.String[][] getUnsignedTable(java.lang.String[][] mtable)
Returns:
Multiplication table with all negative signs stripped off.

getSignTableAsHtml

public static java.lang.String getSignTableAsHtml(java.lang.String[][] m_table)

getSignTable

public java.lang.String[][] getSignTable()

getUnsignedTable

public java.lang.String[][] getUnsignedTable()

getSignTableAsHtml

public java.lang.String getSignTableAsHtml()

getMultTableStringDelimited

public java.lang.String getMultTableStringDelimited(java.lang.String delimiter)

getSignTableStringDelimited

public java.lang.String getSignTableStringDelimited(java.lang.String delimiter)

getUnsignedMultTableStringDelimited

public java.lang.String getUnsignedMultTableStringDelimited(java.lang.String delimiter)

getNormedMultTableStringDelimited

public java.lang.String getNormedMultTableStringDelimited(java.lang.String delimiter)

isAntiSymmetrical

public static boolean isAntiSymmetrical(java.lang.String[][] m_table)

isFanoPlane

public boolean isFanoPlane()
                    throws java.lang.Exception
Checks if the table is isomorphic to one of the 30 Fano planes. Precondition: The dimension of the table is 8.

Parameters:
m_table - Multiplication table.
Returns:
true: if it is a Fano plane false: else
Throws:
java.lang.Exception

getTableView

public static java.lang.String[][] getTableView(java.lang.String[][] table,
                                                java.lang.String bitmap)
                                         throws java.lang.Exception
Parameters:
bitmap - E.g. 0110010.. returns the 2nd, 3rd, 5th ... rows and columns.
Returns:
A sub-table determined by the bitmap.
Throws:
java.lang.Exception

getMultTableAsHtml

public static java.lang.String getMultTableAsHtml(java.lang.String[] basis,
                                                  java.lang.String[][] m_table)

getMultTableStringDelimited

public static java.lang.String getMultTableStringDelimited(java.lang.String[][] m_table,
                                                           java.lang.String delimiter)
Parameters:
basis - Basis elements
m_table - Multiplication table
delimiter - Delimiter
Returns:
The multiplication is returned with the delimiting string inserted between the columns. Example: Delimiter "|" 1 2 1|2 3 4 --> 3|4

getMultTableAsHtml

public static java.lang.String getMultTableAsHtml(java.lang.String[] basis,
                                                  java.lang.String[][] m_table,
                                                  boolean without_html_tags)

getMultTableAsHtml

public java.lang.String getMultTableAsHtml()

getMultTableAsHtml

public java.lang.String getMultTableAsHtml(boolean without_html_tags)

getMultTableListAsHtml

public static java.lang.String getMultTableListAsHtml(java.util.LinkedList<MultiplicationTable> table_list)

swapColumns

public static java.lang.String[][] swapColumns(java.lang.String[][] table,
                                               int col1,
                                               int col2)
Swaps two colums of the multiplication table. Numbering starts from 1.

Parameters:
table - Multiplication table.
col1 - Column 1.
col2 - Column 2.
Returns:
The multiplication table with the swapped columns.

swapRows

public static java.lang.String[][] swapRows(java.lang.String[][] table,
                                            int row1,
                                            int row2)
Swaps two rows of the multiplication table. Numbering starts from 1.

Parameters:
table - Multiplication table.
row1 - Row 1.
row2 - Row 2.
Returns:
The multiplication table with the swapped rows.

getCopy

public static java.lang.String[][] getCopy(java.lang.String[][] table)

getDeterminant2

public static double getDeterminant2(double[][] mat)
Parameters:
Matrix - with numerical entries.
Returns:
Determinant the matrix.

getNormedMultiplicationTable

public static java.lang.String[][] getNormedMultiplicationTable(java.lang.String[][] mult_table,
                                                                java.lang.String[] sub_basis)
A normed multiplication table is per definition a table where the base elements are numbered according to the order of their occurrence in the basis vector (integers running from 1 upwards). Example: Normed right handed quaternion multiplication table: 1 2 3 4 2 -1 4 -3 3 -4 -1 2 4 3 -2 -1 An equivalent conventional multiplication table would look like that: e i j k i -e k -j j -k -e i k j -i -e We assume that the structure constants are +1, -1 or 0. The normed table is useful for comparing multiplication tables of different hypernumbers.

Parameters:
A - sub table based on the sub basis is projected out.
Returns:
Normed multiplication table.