---
name: "yacas_client"
section: "1"
platform: "linux"
package: "yacas"
version: "1.3.6-2.1"
release: "Debian 12 (Bookworm)"
platforms: ["linux"]
url: "https://new.carta.tech/yacas"
---

# yacas\_client(1)

small and flexible general-purpose computer algebra system

Part of [yacas(1)](/yacas/1.md).

## NAME

yacas, yacas\_client — small and flexible general-purpose computer algebra system

## SYNOPSIS

**yacas** \[**options**\]  \[**{filename}**\]

## DESCRIPTION

This manual page documents briefly the  **yacas** and **yacas\_client** commands.

**Yacas** (Yet Another Computer Algebra System) is a small and  highly flexible general-purpose computer algebra language. The syntax  uses a infix-operator grammar parser. The distribution contains a  small library of mathematical functions, but its real strength is in  the language in which you can easily write your own symbolic  manipulation algorithms.  The core engine supports arbitrary precision  arithmetic, and is linked with the GNU arbitrary precision math  library, and is able to execute symbolic manipulations on various  mathematical objects by following user-defined rules.

This manual page was written for the **Debian GNU/Linux** distribution  because the original program does not have a manual page.

## OPTIONS

A summary of options is given below

- **-c**

  Inhibit printing of prompts "In\>" and "Out\>". Useful  for non-interactive sessions.

- **-f**

  Reads standard input as one file, but executes only  the first statement in it. (You may want to use a statement block to  have several statements executed.)

- **-p**

  Does not use terminal capabilities, no fancy editing  on the command line and no escape sequences printed. Useful  for non-interactive sessions.

- **-t**

  Enable some extra history recall functionality in  console mode: after executing a command from the history list, the  next unmodified command from the history list will be automatically  entered on the command line.

- **{filename}**

  Reads and executes commands in the filename and  exits. Equivalent to "Load()".

- **-v**

  Prints version information and exits.

- **-d**

  Prints the path to the Yacas library directory and exits

The default operation of  **Yacas** is to run in  the interactive console mode. **Yacas** accepts several  options that modify its operation.  Options can be combined.

In addition to the console mode, an experimental persistent  session facility is provided through the script  **yacas\_client**. By means of this script, the user can  configure third-party applications to pass commands to a constantly  running "Yacas server" and get output.  The "Yacas server" is  automatically started by **yacas\_client**. It may run  on a remote computer; in that case the user should have a user account  on the remote computer and privileges to execute  **yacas\_client** there, as well as rsh or ssh  access. The purpose of **yacas\_client** is to enable  users to pass commands to **Yacas** within a persistent  session while running another application such as a text editor.

The script **yacas\_client** reads  **yacas** commands from the standard input and  passes them to the running "Yacas server"; it then waits 2 seconds and  prints whatever output **yacas** produced up to  this time. Usage may looks like this:

```
8:20pm Unix>echo "x:=3" | yacas_client
Starting server.
[editvi] [gnuplot]
True;
To exit Yacas, enter  Exit(); or quit or Ctrl-c. Type ?? for help.
Or type ?function for help on a function.
Type 'restart' to restart Yacas.
To see example commands, keep typing Example();
In> x:=3
Out> 3;
In> 8:21pm Unix>echo "x:=3+x" | yacas_client
In> x:=3+x
Out> 6;
In> 8:23pm Unix>yacas_client -stop
In> quit
Quitting...
Server stopped.
8:23pm Unix>
```

Persistence of the session means that  **yacas** remembered the value of "x" between  invocations of **yacas\_client**. If there is not enough  time for Yacas to produce output within 2 seconds, the output will be  displayed the next time you call **yacas\_client**.

The "Yacas server" is started automatically when first used and can be  stopped either by quitting **yacas** or by an  explicit option **yacas\_client** -stop, in which case  **yacas\_client** does not read standard input.

The script **yacas\_client** reads standard input  and writes to standard output, so it can be used via remote shell  execution. For instance, if an account "user" on a remote computer  "remote.host" is accessible through ssh, then  **yacas\_client** can be used remotely like this:

```
echo "x:=2;" | ssh user@remote.host yacas_client
```

On a given host computer running the "Yacas server", each user  currently may have only one persistent Yacas session.

## SEE ALSO

*/usr/share/yacas/documentation/books.html (link to URL file:/usr/share/yacas/documentation/books.html)*        or *http://www.xs4all.nl/~apinkus/manindex.html*  *(link to URL http://www.xs4all.nl/~apinkus/manindex.html)*  for more information.

## AUTHOR

**yacas** was written by Ayal Pinkus  (apinkus@xs4all.nl). **yacas** is available  at *http://www.xs4all.nl/~apinkus/yacas.html*  *(link to URL http://www.xs4all.nl/~apinkus/yacas.html)* .

This manual page was written by Gopal Narayanan (gopal@debian.org) for  the **Debian GNU/Linux** system (but may be used by others).
