Class LinearSystemParser

java.lang.Object
math.matrix.equationParser.LinearSystemParser

public class LinearSystemParser extends Object
  • Field Details

    • logger

      private ErrorLog logger
    • systemOfEquations

      private String systemOfEquations
    • scanner

      private ArrayList<String> scanner
    • valid

      private boolean valid
    • dimension

      private int dimension
    • unknowns

      private ArrayList<String> unknowns
    • equationMatrix

      private Matrix equationMatrix
    • endOfLine

      private String endOfLine
  • Constructor Details

    • LinearSystemParser

      public LinearSystemParser(String systemOfEquations)
  • Method Details

    • setEndOfLine

      public void setEndOfLine(String endOfLine)
    • getEndOfLine

      public String getEndOfLine()
    • isValidEndOfLineChar

      private boolean isValidEndOfLineChar(String eof)
    • plusAndMinusStringHandler

      private void plusAndMinusStringHandler()
      Handles consecutive strings of plus and minus operators and simplifies them, replacing them with their single equivalent in plus and minus terms.e.g +++---+ is equivalent to a - and --++-- is equivalent to a +.
    • getUnknowns

      public ArrayList<String> getUnknowns()
    • getEquationMatrix

      public Matrix getEquationMatrix()
    • setValid

      public void setValid(boolean valid)
    • isValid

      public boolean isValid()
    • setDimension

      public void setDimension(int dimension)
    • getDimension

      public int getDimension()
    • setSystemOfEquations

      public void setSystemOfEquations(String systemOfEquations)
    • getSystemOfEquations

      public String getSystemOfEquations()
    • setScanner

      public void setScanner(ArrayList<String> scanner)
    • getScanner

      public ArrayList<String> getScanner()
    • indexOfLetter

      private int indexOfLetter(String input)
      Parameters:
      input - The word to search.
      Returns:
      the first index of occurrence of a letter, and -1 if no letter of the English alphabet is present.
    • startsWithDigitOrPoint

      private boolean startsWithDigitOrPoint(String input)
      Parameters:
      input - The word to search.
      Returns:
      true if the input begins with a digit or a point.
    • startsWithLetter

      private boolean startsWithLetter(String input)
      Parameters:
      input - The word to search.
      Returns:
      true if the input begins with a letter.
    • scan

      private void scan()
      Scan the system.
    • validateChars

      private void validateChars()
    • appendOneToStartOfFreeVariables

      public void appendOneToStartOfFreeVariables()
      When the situation x+2y+z=9; is met, this method will convert it into 1.0x+2y+z=9;
    • countVariablesAndValidateTheNumberOfEqualsAndSemiColons

      public void countVariablesAndValidateTheNumberOfEqualsAndSemiColons()
      Counts the number of unknowns in the system and compares it with the number of equations in the system. They must be equal and so it carries out this validation also. This method also fills the ArrayList object that records the unknowns in the system with one copy of each unknown found in the system.
    • validateVars

      public void validateVars()
      Checks the left and right of all variables to see if the appropriate items are the ones there. It is a syntax error if an invalid item is found there
    • validateNumbers

      public void validateNumbers()
      Checks the left and right of a number to see if the appropriate items are the ones there. It is a syntax error if an invalid item is found there
    • validateOperators

      public void validateOperators()
      Checks the left and right of an operator to see if the appropriate items are the ones there. It is a syntax error if an invalid item is found there
    • doAritmetic

      public void doAritmetic()
      Handles split variable arithmetic in + and - alone. e.g 2x+3y+4z+7x-9=3x-8y+2; 4z-2x-9=3x-8y+2z+9; -9x+5y+x=9x-2y+2; is converted into 6x+11y+4z=11; -5x+8y+2z=18; -17x+7y=2;
    • buildMatrix

      public void buildMatrix()
      Builds the Matrix object that will contain the executable generated by this LinearSystemParser object.
    • interpretedSystem

      public String interpretedSystem()
      This builds the ideal form of the system with 0 coefficients assigned to parts of the system where an unknown is missing...e.g in 2x+3y+4z=9; 7x+5z=8; 6y=9; This system will eventually be converted into 2x+3y+4z=9; 7x+0y+5z=8; 0x+6y+0z=9;
    • main

      public static void main(String[] args)