# What to Do First

Let us assume that the user has compiled the Octave interface, set an agent name, started an Octave session and is now ready to use NetSolve. In this section we describe those features of the interface that allow to the user to obtain information about the currently available NetSolve system. To obtain a list of solvable problems from Octave type the following command;
 ```octave>> netsolve NetSolve - List of available problems - /BLAS-wrappers/Level3/dmatmul /BLAS-wrappers/Level3/zmatmul /BLAS/Level1/daxpy /BLAS/Level1/ddot /BLAS/Level1/zaxpy /BLAS/Level2/dgemv /BLAS/Level3/dgemm /BLAS/Level3/zgemm /LAPACK-wrapper/Simple/Eig_and_Singular/eig >>```
Where each line contains a full problem name.

If the user would like more detailed information on a specific problem, for example, eig, he can type:
 `octave>> netsolve('eig')`
The output produced by this command is as follows:
 ``` -- eig -- Wrapper around the LAPACK routine DGEEV -- Simplified version of DGEEV. Computes the eigenvalues of a double precision real matrix A. Returns two double precision real vectors containing respectively the real parts and the imaginary parts of the eigenvalues. MATLAB Example : [r i ] = netsolve('eig',a) * 1 objects in INPUT - input 0: Matrix Double Precision Real. Matrix A * 2 objects in OUTPUT - output 0: Vector Double Precision Real. Real parts of the eigen values - output 1: Vector Double Precision Real. Imaginary parts of the eigen values -------------------------------------- Output Objects 0 and 1 can be merged.```

This output gives a short description of the problem, an example in Octave using netsolve(), the input objects that must be supplied by the user, and the output that will be returned to the user. The particular problem requires only one double-precision matrix on input. Notice that this matrix must be square (as stated in the description of the problem). If the user tries to call NetSolve for this problem with a rectangular matrix, he will receive an error message stating that the dimensions of the input are invalid. On output, the problems eig will return two vectors, the real and imaginary parts of the eigenvalues of the input matrix respectively.

Since Octave provides a mechanism to manipulate complex objects, it is probable that the user would like to have eig return one single complex vector instead of two separate real vectors. Thus in the Octave interface it is possible to merge these two real output vectors into one complex vector. This point is further developed in the next section.

The Octave interface has another feature that is concerned not with the actual problem solving but with providing information about the NetSolve configuration itself. We have just seen how to get information about the problems handled by the NetSolve servers; it is also possible to obtain the physical location of these servers. Let us assume that our NETSOLVE_AGENT environment variable is set to netsolve.cs.utk.edu. The command
 `octave>> netsolve('?')`
Produces the following output:
 ```NetSolve - List of available agents - netsolve.cs.utk.edu(128.169.93.161) NetSolve - List of available servers - maruti.cs.berkeley.edu(128.32.36.83) cupid.cs.utk.edu(128.169.94.221) torc3.cs.utk.edu(128.169.93.74) (0 failures)```
The same information can be obtained from the NetSolve web site under Resources or the management tools in \$NETSOLVE_ROOT/bin/\$NETSOLVE_ARCH/ directory.