import cam.symfun.*;
public class SFtest2
{
//
//######################################################################
//
// Create and then evaluate a user specified function of one variable.
//
// INPUT :
// ------
// User is prompted to specify a function f(x).
//
// Example : Typing x*x +2 followed by a carriage return would input
// the function x squared plus 2. The syntax for function specification
// is that of the syntax for a Java expression.
//
// User is prompted to specify the evaluation point
//
// OUTPUT :
// ------
// The value of the function at the evaluation point
//
//######################################################################
//
public static void main(String[] args)
{
// query user for function specification
java.io.BufferedReader userInput = new java.io.BufferedReader
(new java.io.InputStreamReader(System.in));
String E = null;
System.out.print("Enter f(x) : ");
try{ E = userInput.readLine();}
catch(Exception e){System.out.println(e.getMessage());}
//
// query user for x value (note that the value is read in as a string
// and then converted to a double value
//
String xVal;
double x = 0.0;
System.out.print("Enter evaluation point : ");
try{
xVal = userInput.readLine();
x = (new Double(xVal)).doubleValue();
}
catch(Exception e){System.out.println(e.getMessage());}
//
// create the symbolic function and evaluate it
//
SymbolicFunction Sym = new SymbolicFunction();
String[] V = new String[1];
V[0] = new String("x"); // x = ind. variable
try
{
Sym.initialize(V,E);
}
catch(Exception e)
{
System.out.println(e.getMessage());
}
double val = Sym.evaluate(x);
System.out.println(" SymbolicFunction F = " + Sym.getConstructorString());
System.out.println(" Evaluated at x = " + x + " is : " + val);
//
// Pause command window
//
System.out.println(" ");
System.out.println(" Program End : Hit Return to Continue ");
try{userInput.readLine();}catch(Exception e){};
}
}