sbrt.shell.mng.algebra
Class LinearSolverManager

java.lang.Object
  extended by sbrt.shell.mng.AbstractProcessManager
      extended by sbrt.shell.mng.algebra.LinearSolverManager
All Implemented Interfaces:
KernelProcessManager<java.lang.String,java.lang.String>, ProcessManager<java.lang.String,java.lang.String>

public final class LinearSolverManager
extends AbstractProcessManager
implements KernelProcessManager<java.lang.String,java.lang.String>

This class is used to manage linear system solvers.

Author:
This class was written and documented by Jeremiah Wright while in the Wagner lab.

Field Summary
static java.lang.String EQUATIONS_FILE
          The keyword used to denote the name of the file containing the system of linear equations.
static java.lang.String KERNEL_LINK_CMD
          The keyword used to denote the Mathematica kernel link command.
static UnmodifiableSet<java.lang.String> optionalKeywords
          The set of keywords understood, but not required, by this process manager.
static UnmodifiableSet<java.lang.String> requiredKeywords
          The set of keywords required by this process manager.
 
Fields inherited from class sbrt.shell.mng.AbstractProcessManager
ALGORITHM, COMPLETED, DATA_HEADERS, DEV_NULL, ELAPSED_TIME, FILE_FORMAT, INPUT_FILE, INPUT_FILE_FORMAT, INPUT_FILE_NAME_FILE, ITERATIONS, OUTPUT_FILE_FORMAT, OUTPUT_FILE_NAME, OUTPUT_FILE_NAME_FILE, PERCENT, PERCENT_COMPLETED, SEED, ZERO_CUTOFF
 
Constructor Summary
LinearSolverManager()
           
 
Method Summary
 void execute(java.io.PrintWriter out)
          Executes the process this process manager controls and writes the results to the provided print writer.
static java.util.Map<LinearComb<java.lang.String>,java.lang.Double> getEquations(ManagerInput<java.lang.String,java.lang.String> input, java.io.PrintWriter out)
          Returns the set of linear equations contained in the file with the provided name.
static java.util.Map<LinearComb<java.lang.String>,java.lang.Double> getEquations(java.lang.String fileName)
          Returns the set of linear equations contained in the file with the provided name.
static java.util.Map<LinearComb<java.lang.String>,java.lang.Double> getEquations(java.lang.String fileName, java.io.PrintWriter out)
          Returns the set of linear equations contained in the file with the provided name.
 UnmodifiableSet<java.lang.String> getOptionalKeys()
          Returns the set of keywords understood, but not required, by this process manager.
 LinearSolverProcess<java.lang.String> getProcess()
          Returns the process controlled by this process manager.
 UnmodifiableSet<java.lang.String> getRequiredKeys()
          Returns the set of keywords required by this process manager.
static MathematicaSolver<java.lang.String> getSolver(ManagerInput<java.lang.String,java.lang.String> input, java.io.PrintWriter out)
          Returns the linear system solver specified by KERNEL_LINK_CMD in the provided input.
static ApplicationException interpret(ExternalSoftwareException e)
          Interprets the provided external software exception.
 void setInput(ManagerInput<java.lang.String,java.lang.String> input, java.io.PrintWriter out)
          Uses the provided input to prepare this process manager for execution.
 
Methods inherited from class sbrt.shell.mng.AbstractProcessManager
check, closeFile, closeRm, execute, getFileFormat, getFileFormat, getFileNameSource, getIterations, getSeed, getTextFileFormat, getTextFileFormat, getZeroCutoff, getZeroCutoff, parseInt, parseLong, printProgress, printProgress, printProgress, runProcess, setInput
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface sbrt.shell.mng.ProcessManager
check, execute, setInput
 

Field Detail

KERNEL_LINK_CMD

public static final java.lang.String KERNEL_LINK_CMD
The keyword used to denote the Mathematica kernel link command.

See Also:
Constant Field Values

EQUATIONS_FILE

public static final java.lang.String EQUATIONS_FILE
The keyword used to denote the name of the file containing the system of linear equations.

See Also:
Constant Field Values

requiredKeywords

public static final UnmodifiableSet<java.lang.String> requiredKeywords
The set of keywords required by this process manager.


optionalKeywords

public static final UnmodifiableSet<java.lang.String> optionalKeywords
The set of keywords understood, but not required, by this process manager.

Constructor Detail

LinearSolverManager

public LinearSolverManager()
Method Detail

getSolver

public static MathematicaSolver<java.lang.String> getSolver(ManagerInput<java.lang.String,java.lang.String> input,
                                                            java.io.PrintWriter out)
Returns the linear system solver specified by KERNEL_LINK_CMD in the provided input.

Parameters:
input - the input containing a value for the the keyword MMA_EXECUTABLE
out - the print writer to which status messages will be printed.
Returns:
the linear system solver specified by KERNEL_LINK_CMD in the provided input.

interpret

public static ApplicationException interpret(ExternalSoftwareException e)
Interprets the provided external software exception. The provided exception must have been thrown by the LinearSystemSolver returned by getSolver(ManagerInput, PrintWriter).

Parameters:
e - the external software exception to be interpretted.
Returns:
the provided exception wrapped as an application exception.

getEquations

public static java.util.Map<LinearComb<java.lang.String>,java.lang.Double> getEquations(ManagerInput<java.lang.String,java.lang.String> input,
                                                                                        java.io.PrintWriter out)
Returns the set of linear equations contained in the file with the provided name.

Parameters:
input - the input containing the name of the file containing the set of equations.
out - the print writer to which status messages will be printed.
Returns:
the set of equations contained in the file with the provided name.

getEquations

public static java.util.Map<LinearComb<java.lang.String>,java.lang.Double> getEquations(java.lang.String fileName,
                                                                                        java.io.PrintWriter out)
Returns the set of linear equations contained in the file with the provided name.

Parameters:
fileName - the name of the file containing the set of equations.
out - the print writer to which status messages will be printed.
Returns:
the set of equations contained in the file with the provided name.

getEquations

public static java.util.Map<LinearComb<java.lang.String>,java.lang.Double> getEquations(java.lang.String fileName)
Returns the set of linear equations contained in the file with the provided name.

Parameters:
fileName - the name of the file containing the set of equations.
Returns:
the set of equations contained in the file with the provided name.

getRequiredKeys

public UnmodifiableSet<java.lang.String> getRequiredKeys()
Returns the set of keywords required by this process manager.

Specified by:
getRequiredKeys in interface ProcessManager<java.lang.String,java.lang.String>
Returns:
the set of keywords required by this process manager.

getOptionalKeys

public UnmodifiableSet<java.lang.String> getOptionalKeys()
Returns the set of keywords understood, but not required, by this process manager.

Specified by:
getOptionalKeys in interface ProcessManager<java.lang.String,java.lang.String>
Returns:
the set of keywords understood, but not required, by this process manager.

getProcess

public LinearSolverProcess<java.lang.String> getProcess()
Returns the process controlled by this process manager.

Specified by:
getProcess in interface KernelProcessManager<java.lang.String,java.lang.String>
Returns:
the process controlled by this process manager.

setInput

public void setInput(ManagerInput<java.lang.String,java.lang.String> input,
                     java.io.PrintWriter out)
Uses the provided input to prepare this process manager for execution. As the input is processed, informative messages are printed to the provided print writer.

Specified by:
setInput in interface ProcessManager<java.lang.String,java.lang.String>
Parameters:
input - all of the information required to prepare this process manager for execution.
out - the print writer to which all messages will be printed.

execute

public void execute(java.io.PrintWriter out)
Executes the process this process manager controls and writes the results to the provided print writer.

Specified by:
execute in interface ProcessManager<java.lang.String,java.lang.String>
Parameters:
out - the print writer where the results will be printed.
Throws:
java.lang.IllegalStateException - if no input was provided to this process manager.