# Sysquake

This is the table of contents of the electronic version of Sysquake user manual.
For help about a function or another keyword, the index
may be handy. For the description of a particular function of LME (Sysquake's
programming language), you can also type `help` *function* in
the Command window of Sysquake, or `lookfor` *str* to find
the list of commands which contain *str* in their short description.

You should take the time to read at least the description of the introduction which describes Sysquake from a user point of view. The SQ files (an SQ file is a self-contained description of figures and how they interact together) give a better idea of what Sysquake really is than any static document. Their description provides both an overview if you just want to learn what you can do with them, and a more thorough reference. You can find them in the folder "SQ_files". Other sections explain how to extend Sysquake by writing SQ files yourself.

- Sysquake Introduction
- An introduction to the Sysquake application.
- Getting Started with Sysquake
- How to use Sysquake, with a description of its windows and menus.
- SQ Files
- A description of the SQ files provided with Sysquake.
- Command-Line Interface
- How you can evaluate simple as well as complicated expressions.
- LME Tutorial
- A step-by-step discovery of LME, the language used by Sysquake.
- SQ Script Tutorial
- A step-by-step recipe to develop an SQ script, the simplest kind of Sysquake application.
- SQ Script Reference
- A reference to SQ scripts. The differences between SQ files and SQ scripts are detailed.
- SQ File Tutorial
- A step-by-step discovery of how to write an SQ file, a slightly more complicated application kind which supports all the features of Sysquake such as undo/redo, menus, choice of graphics, save, import/export, etc.
- SQ File Reference
- Description of the structure of SQ files.
- SQ File Advanced Features
- Optional elements in SQ files which support advanced features like idle processing and import/export.
- LME Reference
- Reference to the LME language used by Sysquake.
- Character Set
- How Sysquake handles source code files with different character encodings.
- Simple Markup
- Simple markup for styled text.
- Functions by Category
- All the built-in functions available in Sysquake, sorted by category.
- Functions by Name
- Operators, functions and other keywords used in Sysquake, sorted by name.
- Variables
- Constructs and functions which declare, retrieve, and set variables.
- Programming constructs
- The basic bricks of LME: functions, conditional execution, loops, etc.
- Debugging commands
- Commands which help in debugging functions.
- Profiler
- A mean to know the amount of time spent executing each line of code.
- Miscellaneous functions
- Functions which cannot be classified elsewhere, such as those related to function arguments and error management.
- Sandbox
- Secure environment to execute code from untrusted sources.
- Threads
- Concurrent execution.
- Parallel
- Parallel task execution.
- Help functions
- The functions which give you help inside Sysquake.
- Operators
- Arithmetic (+-*/), comparison (== < etc.), and array (,;:) operators.
- Mathematical functions
- Trigonometric, logarithmic, special, and conversion functions on scalar numbers.
- Matrix functions
- Arithmetic, eigenvalues, decompositions, norms, filtering, FFT, statistics, and computation on polynomials.
- Array functions
- Everything you need to build and manipulate arrays.
- Triangulation functions
- Delaunay triangulation and Voronoi tessalation.
- Integer functions
- Functions related to arrays of integer numbers.
- Non-linear numeric functions
- Numeric integration of ordinary differential equations.
- String functions
- Functions which manipulate, compare and transform strings.
- Quaternions
- Support for quaternions, similar to complex numbers but with four components.
- List functions
- Functions which manipulate lists of data.
- Structure functions
- Functions which create and handle structures, sets of data elements identified by names.
- Object functions
- Functions which creates and manipulate objects.
- Logical functions
- Boolean and bitwise functions.
- Dynamical system functions
- Functions related to linear time-invariant dynamical systems.
- Input/output functions
- Functions which read from and write to files or devices, and format data.
- File system functions
- Functions which open and close files.
- Path manipulation functions
- Functions related to path construction and extraction.
- Search path
- Function which gets or sets the list of paths where SQ files and libraries are searched.
- XML functions
- Functions which read and parse XML documents.
- Serial port functions
- Functions which open and close a serial port.
- Time functions
- Functions which retrieve the current time or start and stop a stopwatch.
- Date functions
- Date conversion.
- Graphics
- Introduction to graphics in Sysquake.
- Remarks
- General remarks about style, identifiers and scale.
- Base functions
- Base functions to create simple graphics.
- 3D functions
- Functions to create 3D graphics.
- Functions for dynamic systems
- Specialized functions to create graphics related to linear time-invariant systems.
- Sysquake graphics
- Support for subplots and options specific to Sysquake.
- SQ script functions
- Functions to support interactivity in SQ scripts.
- Dialog functions
- Functions which display dialogs for text entry or file selection.
- Sysquake miscellaneous functions
- Description of the non-graphical functions added to LME by Sysquake.
- Libraries
- Sets of functions which extend LME.
- LME Compatibility Notes
- Differences between LME and MATLAB(R)'s language.
- License and Copyright
- A few words about legal issues.

The commands and functions of LME are described in several documents: