Hi List, hi Curtis,
I have some Problems with the FormulaManager. The following simple program,
posted to the list by Curtis on Tue Apr 18 10:29:26 2000, doesn't work as
expected on my platform (SUSE linux 7.0, kernel 2.2.16):
// Eval.java
import java.rmi.RemoteException;
import visad.*;
import visad.formula.*;
public class Eval {
public static void main(String[] argv)
throws VisADException, RemoteException
{
// get arguments from command line
if (argv.length < 3) {
System.out.println("Please enter three arguments: " +
"two numbers and a formula.");
System.exit(1);
}
double d1 = 0;
double d2 = 0;
try {
d1 = Double.parseDouble(argv[0]);
d2 = Double.parseDouble(argv[1]);
}
catch (NumberFormatException exc) {
System.out.println("First two arguments must be numbers.");
System.exit(2);
}
String formula = argv[2];
// create two VisAD Data objects that store floating point values
Real x = new Real(d1);
Real y = new Real(d2);
// create formula manager
FormulaManager fman = FormulaUtil.createStandardManager();
// register Data objects with formula manager
fman.setThing("x", x);
fman.setThing("y", y);
// assign formula to new variable
fman.assignFormula("f", formula);
// wait for formula to finish computing, just to be safe
fman.waitForFormula("f");
// get value of function from formula manager
Real f = (Real) fman.getThing("f");
// print out results
System.out.println("x = " + x.getValue() + ", y = " + y.getValue());
System.out.println("f(x,y) = " + formula + " = " + f.getValue());
}
}
1. Problem/Error: Eval doesn't return. E.g.
~/da/test/visad: java Eval 3 4 x+y
x = 3.0, y = 4.0
f(x,y) = x+y = 7.0
does produce the correct output, but the process isn't exiting.
2. The FormularManager doesn't work if the to be calculated formula doesn't
contain any variable. E.g.
Eval 3 4 90+35
doesn't produce any output nor does it return with an exception or something.
Thanks for any help,
Timo
--
__.__________
|lmo |homas