From 7306608180573d112373079fb94c66d6a84c2598 Mon Sep 17 00:00:00 2001 From: Mark Lawford Date: Tue, 23 Aug 2011 19:26:39 +0000 Subject: [PATCH] Updating revision number and documentation to add NFM2011 reference and website. git-svn-id: https://groke.mcmaster.ca/svn/grad/colin/trunk/TableTool@7728 57e6efec-57d4-0310-aeb1-a6c144bb1a8b --- html/TT_gs_ref.m | 18 ++++++++++-------- html/TT_gs_req.m | 6 +++--- html/helptoc.xml | 8 ++++---- html/helptoc_template.xml | 6 +++--- html/html/TT_gs_over.html | 12 ++++++------ html/html/TT_gs_ref.html | 29 ++++++++++++++++------------- html/html/TT_gs_req.html | 20 +++++++++++--------- html/html/TT_gs_top.html | 12 ++++++------ html/html/TT_help.html | 8 ++++---- html/html/TT_ug.html | 8 ++++---- html/html/TT_ug_background.html | 18 ++++++------------ html/html/TT_ug_checking.html | 8 ++++---- html/html/TT_ug_editing.html | 8 ++++---- html/html/TT_ug_floating.html | 13 ++++++++----- html/html/TT_ug_opening.html | 9 +++++---- html/html/TT_ug_saving.html | 8 ++++---- html/html/TT_ug_settings.html | 8 ++++---- 17 files changed, 102 insertions(+), 97 deletions(-) diff --git a/html/TT_gs_ref.m b/html/TT_gs_ref.m index 7527dcd..ae9cdee 100644 --- a/html/TT_gs_ref.m +++ b/html/TT_gs_ref.m @@ -1,20 +1,22 @@ %% Tabular Expressions References +%% Tabular Expression Toolbox Publications +% * C. Eles and M. Lawford, "A tabular expression toolbox for Matlab/Simulink," NASA Formal Methods, LNCS Vol. 6617, pp. 494-499, Springer, 2011. %% Background Information % Tabular Expressions have been around for many years, below are some % papers discussing some of the fundamentals behind tabular expressions. % -% * Y. Jin and D. L. Parnas, "Defining the meaning of tabular mathematical -% expressions," Science of Computer Programming, vol. In Press, Corrected Proof, 2010. +% * Y. Jin and D. L. Parnas, "Defining the meaning of tabular mathematical +% expressions," Science of Computer Programming, Vol. 75, no. 11, pp. 980-1000, 2010. % * Parnas, D.L., "Tabular Representation of Relations", CRL Report 260, % McMaster University, Communications Research Laboratory, TRIO % (Telecommunications Research Institute of Ontario), October 1992, 17 pgs. -% * R. Janicki, D. L. Parnas, and J. Zucker, "Tabular representations in -% relational documents," in in Relational Methods in Computer Science, pp. 184-196, Springer Verlag, 1996. +% * R. Janicki, D.L. Parnas, and J. Zucker, "Tabular representations in +% relational documents," in in Relational Methods in Computer Science, pp. 184-196, Springer Verlag, 1996. %% Tabular Expressions in Industry % Tabular Expressions have been used in numerous industrial projects, below % are some papers describing some of such projects. % -% * A. Wassyng and M. Lawford, "Lessons learned from a successful -% implementation of formal methods in an industrial project," in FME 2003: International Symposium of Formal Methods Europe Proceedings (K. Araki, S. Gnesi, and D. Mandrioli, eds.), vol. 2805 of Lecture Notes in Computer Science, pp. 133-153, Springer-Verlag, Aug. 2003. -% * R. L. Baber, D. L. Parnas, S. A. Vilkomir, P. Harrison, and -% T. O'Connor, "Disciplined methods of software specification: A case study," in ITCC '05: Proceedings of the International Conference on Information Technology: Coding and Computing (ITCC'05) - Volume II, (Washington, DC, USA), pp. 428-437, IEEE Computer Society, 2005. \ No newline at end of file +% * A. Wassyng and M. Lawford, "Lessons learned from a successful +% implementation of formal methods in an industrial project," in FME 2003: International Symposium of Formal Methods Europe Proceedings (K. Araki, S. Gnesi, and D. Mandrioli, eds.), vol. 2805 of Lecture Notes in Computer Science, pp. 133-153, Springer-Verlag, Aug. 2003. +% * R. L. Baber, D. L. Parnas, S. A. Vilkomir, P. Harrison, and +% T. O'Connor, "Disciplined methods of software specification: A case study," in ITCC '05: Proceedings of the International Conference on Information Technology: Coding and Computing (ITCC'05) - Volume II, (Washington, DC, USA), pp. 428-437, IEEE Computer Society, 2005. diff --git a/html/TT_gs_req.m b/html/TT_gs_req.m index fa55528..760a4db 100644 --- a/html/TT_gs_req.m +++ b/html/TT_gs_req.m @@ -2,7 +2,7 @@ % %% Matlab/Simulink % -% * Tested with Matlab Simulink 2009b and 2010a +% * Tested with Matlab Simulink 2011a, 2010a, 2009b % %% Table Checking % * The tool supports checking of table completness and disjointness @@ -24,5 +24,5 @@ % * PVS is downloadable from http://pvs.csl.sri.com/ % * System has been tested on PVS versions 4.2 and 4.1 % * Ensure that pvs executable is on shell path -% * *Note:* PVS is a linux and OS X application and will not run natively -% on Windows. \ No newline at end of file +% * *Note:* PVS is a Linux and MacOS X application and will not run natively +% on Windows. diff --git a/html/helptoc.xml b/html/helptoc.xml index d5c84d3..9cd7e08 100644 --- a/html/helptoc.xml +++ b/html/helptoc.xml @@ -3,7 +3,7 @@ - MyToolbox Toolbox + Tabular Expression Toolbox @@ -15,7 +15,7 @@ - Getting Started with the MyToolbox Toolbox + Getting Started with the Tabular Expression Toolbox System Requirements Product Overview @@ -39,9 +39,9 @@ - - MyToolbox Web Site (Example only: goes to mathworks.com) + Tabular Expression Toolbox Web Site diff --git a/html/helptoc_template.xml b/html/helptoc_template.xml index d06b7fd..d3d5989 100644 --- a/html/helptoc_template.xml +++ b/html/helptoc_template.xml @@ -3,7 +3,7 @@ - MyToolbox Toolbox + Tabular Expression Toolbox @@ -36,9 +36,9 @@ - - MyToolbox Web Site (Example only: goes to mathworks.com) + Tabular Expression Toolbox Web Site diff --git a/html/html/TT_gs_over.html b/html/html/TT_gs_over.html index 95bd334..3fe68b6 100644 --- a/html/html/TT_gs_over.html +++ b/html/html/TT_gs_over.html @@ -4,9 +4,9 @@ Product Overview

Tabular Expressions References

Contents

Background Information

Tabular Expressions have been around for many years, below are some papers discussing some of the fundamentals behind tabular expressions.

  • Y. Jin and D. L. Parnas, "Defining the meaning of tabular mathematical expressions," Science of Computer Programming, vol. In Press, Corrected Proof, 2010.
  • Parnas, D.L., "Tabular Representation of Relations", CRL Report 260, McMaster University, Communications Research Laboratory, TRIO (Telecommunications Research Institute of Ontario), October 1992, 17 pgs.
  • R. Janicki, D. L. Parnas, and J. Zucker, "Tabular representations in relational documents," in in Relational Methods in Computer Science, pp. 184-196, Springer Verlag, 1996.

Tabular Expressions in Industry

Tabular Expressions have been used in numerous industrial projects, below are some papers describing some of such projects.

  • A. Wassyng and M. Lawford, "Lessons learned from a successful implementation of formal methods in an industrial project," in FME 2003: International Symposium of Formal Methods Europe Proceedings (K. Araki, S. Gnesi, and D. Mandrioli, eds.), vol. 2805 of Lecture Notes in Computer Science, pp. 133-153, Springer-Verlag, Aug. 2003.
  • R. L. Baber, D. L. Parnas, S. A. Vilkomir, P. Harrison, and T. O'Connor, "Disciplined methods of software specification: A case study," in ITCC '05: Proceedings of the International Conference on Information Technology: Coding and Computing (ITCC'05) - Volume II, (Washington, DC, USA), pp. 428-437, IEEE Computer Society, 2005.

Contents

Tabular Expression Toolbox Publications

  • C. Eles and M. Lawford, "A tabular expression toolbox for Matlab/Simulink," NASA Formal Methods, LNCS Vol. 6617, pp. 494-499, Springer, 2011.

Background Information

Tabular Expressions have been around for many years, below are some papers discussing some of the fundamentals behind tabular expressions.

  • Y. Jin and D. L. Parnas, "Defining the meaning of tabular mathematical expressions," Science of Computer Programming, Vol. 75, no. 11, pp. 980-1000, 2010.
  • Parnas, D.L., "Tabular Representation of Relations", CRL Report 260, McMaster University, Communications Research Laboratory, TRIO (Telecommunications Research Institute of Ontario), October 1992, 17 pgs.
  • R. Janicki, D.L. Parnas, and J. Zucker, "Tabular representations in relational documents," in in Relational Methods in Computer Science, pp. 184-196, Springer Verlag, 1996.

Tabular Expressions in Industry

Tabular Expressions have been used in numerous industrial projects, below are some papers describing some of such projects.

  • A. Wassyng and M. Lawford, "Lessons learned from a successful implementation of formal methods in an industrial project," in FME 2003: International Symposium of Formal Methods Europe Proceedings (K. Araki, S. Gnesi, and D. Mandrioli, eds.), vol. 2805 of Lecture Notes in Computer Science, pp. 133-153, Springer-Verlag, Aug. 2003.
  • R. L. Baber, D. L. Parnas, S. A. Vilkomir, P. Harrison, and T. O'Connor, "Disciplined methods of software specification: A case study," in ITCC '05: Proceedings of the International Conference on Information Technology: Coding and Computing (ITCC'05) - Volume II, (Washington, DC, USA), pp. 428-437, IEEE Computer Society, 2005.
\ No newline at end of file diff --git a/html/html/TT_gs_req.html b/html/html/TT_gs_req.html index fa50590..f8370b6 100644 --- a/html/html/TT_gs_req.html +++ b/html/html/TT_gs_req.html @@ -4,9 +4,9 @@ System Requirements

System Requirements

Contents

Matlab/Simulink

  • Tested with Matlab Simulink 2009b and 2010a

Table Checking

  • The tool supports checking of table completness and disjointness through the support of external tools *

CVC3

  • CVC3 is supported for checking for completness and disjointness of tables
  • CVC3 can be downloaded from http://cs.nyu.edu/acsys/cvc3/
  • Ensure that cvc3 is executable on the shell path.
  • CVC3 is available for Linux/OS X and Windows.

PVS (Prototype Verification System)

  • PVS is supported for checking for completness and disjointness of tables.
  • PVS is downloadable from http://pvs.csl.sri.com/
  • System has been tested on PVS versions 4.2 and 4.1
  • Ensure that pvs executable is on shell path
  • Note: PVS is a linux and OS X application and will not run natively on Windows.

Contents

Matlab/Simulink

  • Tested with Matlab Simulink 2011a, 2010a, 2009b

Table Checking

  • The tool supports checking of table completness and disjointness through the support of external tools
  • This tool will work with either or both of the tools installed.
  • It is recommened that both tools be installed, as they are built on different technologies, and have different strengths and weaknesses.

CVC3

  • CVC3 is supported for checking for completness and disjointness of tables
  • CVC3 can be downloaded from http://cs.nyu.edu/acsys/cvc3/
  • Ensure that cvc3 is executable on the shell path.
  • CVC3 is available for Linux/OS X and Windows.

PVS (Prototype Verification System)

  • PVS is supported for checking for completness and disjointness of tables.
  • PVS is downloadable from http://pvs.csl.sri.com/
  • System has been tested on PVS versions 4.2 and 4.1
  • Ensure that pvs executable is on shell path
  • Note: PVS is a Linux and MacOS X application and will not run natively on Windows.
\ No newline at end of file diff --git a/html/html/TT_gs_top.html b/html/html/TT_gs_top.html index aef535e..6a8c1e4 100644 --- a/html/html/TT_gs_top.html +++ b/html/html/TT_gs_top.html @@ -4,9 +4,9 @@ Getting Started

Getting Started

Table Toolbox

Table Toolbox

Available Documentation

Copyright 2010 Colin Eles

User Guide

User Guide

Copyright 2010 Colin Eles

Tabular Expressions

Tabular Expressions

\ No newline at end of file diff --git a/html/html/TT_ug_checking.html b/html/html/TT_ug_checking.html index 2dd70d5..216cb45 100644 --- a/html/html/TT_ug_checking.html +++ b/html/html/TT_ug_checking.html @@ -4,9 +4,9 @@ Typechecking a Table

Typechecking a Table

Contents

Overview

Of of the main features of tabular expressions is the facilitation of the inspection of completeness and disjointness conditions. This tool has support for external tools to automate this process. Currently two tools based on different ideas and technologies are supported. In order to typecheck a table at least one of these tools must be installed on the system, see the System Requirements in the Getting Started Guide.

It is recommended that both systems be installed as they have different advantages and disadvantages, additionally with both installed a single point of failure for typechecking the table is avoided.

The default typechecker is CVC3 as it is easier to install and available for more platforms. however this can be changed from the typecheck menu, see screenshot below.

Both tools will appear to operate the same way to the user; the details of how the tools run and their interfaces are hidden from the user of the table tool. If a table is valid the user will be notified with a message box as seen below. if the table is not valid a typechecking report will be generated see below for more details.

Syntax Check

Pressing the "Syntax" button or selecting "Syntax Check" from the Typecheck menu will perform a syntactic check on the table. The syntactic check will look at the inputs, conditions, and outputs to ensure that all variables are defined and all expressions are proper Matlab syntax. The syntax check will highlight the problem cells in red as seen in the example below. Condition cells must evaluate to a value that can be interpreted as a boolean value.

In this example the reason there is a syntax error is because the variable declared in the inputs field is x1 whereas the variable being used in the conditions is x. To fix this error one could either change the inputs field to be x or the each x in the table to be x1.

CVC3

CVC3 is the third iteration of a SMT solver developed at NYU.

CVC3 Typecheck

Typecheck the current table using CVC3, will perform a syntax check prior to running the typecheck operation.

Generate CVC File

Generate a CVC file with the required proof obligations. Calling the typecheck function will also do this, but this function will not attempt to prove the file.

PVS

PVS is a general purpose theorem prover developed by SRI.

PVS Typecehck

Typecheck the current table using PVS, will perform a syntax check prior to running the typecheck operation.

PVS Settings

A few settings for running the pvs commands can be adjusted using the pvs settings window. See the screenshot below.

  • Imports: Allows to specify one or more pvs files to import, can be used if other functions or types are referenced.
  • Test Count: Used to adjust the number of attempts when generating a counterexample to an unproven theorem. Increasing this will increase the chances of finding a counterexample but will also increase the time taken to find a counterexample.
  • Test Range: Used to adjust the range of possible counterexamples tested. the range of numbers to test will be in the range (-size..size). for example if your theorem is only false for the value 500 then you would require a range value >= 500 in order to find the counterexample.

PVS Check Status

Check if the current file has already been typechecked, used when a table was manually proven in pvs rather than being automatically proven using the tool. If the tool fails to generate a counterexample it is possible that the theorem is true but the automatic PVS proof strategies were not sufficient to prove the table, in this case it may be neccessary to prove the table manually using the pvs interface. This command allows you to read the state of the proof into the table tool.

PVS Generate File

Generate a pvs file representing the table. Calling the typecheck function will also do this, but this function will not attempt to prove the file.

PVS Typecheck SimTypes

Typechecking the table with regards to the Simulink types will ignore any typing information in the inputs or function name fields. typng information will be taken from the simulink diagram, so any port datatypes specified in the ports and data manager window will be used. inorder to determine any inherited types the tool will compile the simulink diagram. Therefore any errors in the diagram (alegbraic loops, etc.) will need to be resolved before being able to use this mode of typechecking.

PVS or CVC3

PVS and CVC3 are based on 2 different technologies, which means that they will have different advantages and disadvantages.

CVC3 will generally be much faster than PVS, and is usually better at finding a counterexample, however it is not as robust as PVS and if any expressions involve nonlinear mathematics the tool may not perform as expected. As CVC3 is an SMT solver, proving something is an all or nothing operation either the query is valid, invalid, or unknown; there is no way to manually guide or direct the proof in anyway.

PVS is a very general purpose theorem prover, it is very powerful, and as such has a larger overhead than CVC3, as a result it takes longer to run a proof on PVS. PVS's tactics for generating counterexamples is not very sophisticated so it is not always the case that it will find one; it generally takes a substantial amount of time to run a check for counterexamples. PVS has a robust proof engine that allows for users to manually guide a proof through its completion. When typechecking a table using PVS, PVS may not be able to prove the theorems correct, if a counterexample is not found it may mean that the default proof strategy was not sufficient rather than it being false. In this case the tool allows you to go into pvs to attempt to manually prove the table, this will require knowledge of the pvs proof engine and language, we recomend you find more information here <http://pvs.csl.sri.com>

For these reasons, to get the full power the tool it is recomended that both PVS and CVC3 be installed. Typechecking with both tools eliminates a single point of failure in the typechecking step, and provides greater assurance to the designer that the table is correct.

Typechecking Report

If a table fails to be proven valid a typechecking report will be generated. The report serves a number of functions it shows the user what the unproven sequent (logical statement) was, the report will display a counter example should one be generated. The report will highlight in the table the state of cells for the generated counterexamples, this makes it very easy to see where the error was made.

Below is the report for a CVC3 typecheck then for a PVS typecheck.

There is a minor difference between the CVC3 and the PVS report. The PVS report has a button called "Open" this will open the current theory in PVS allowing for the user to attempt to prove the theorems.

If more than one sequent is unproveable, the "next" button will be enabled, this allows the user to view the other unprovable sequents and possible counterexamples.

When viewing a sequent that has a counterexample the report will highlight on the table window the state of the conditions.

  • A Red colour indicates that the given cell has evaulated to False for the current counterexample.
  • A Green colour indicates that the given cell has evaulated to True for the current counterexample.

Ideally you want one and only one green cell in each grid. Some examples follow:

Non-disjoint tables

Incomplete tables

Editing a Tabular Expression

Editing a Tabular Expression

The Table Tool allows users to graphically layout a tabular expression, for which conditions and outputs can be specified using the embedded Matlab subset of the Matlab language.

Contents

Layout

The Dialog interface allows for the creation of 1-Dimensional vertical and horizontal tables, as well as 2-Dimensional tables. The tool supports multiple outputs for 1-Dimensional vertical tables.

The figure below shows an example 2-Dimensional Table with the Vertical Conditions, Horizontal Conditions, and Outputs notated.

The "new" button will create an additional condition box for a particular grid. The "delete" button will remove the last condition box in a grid. For each condition in the vertical conditions, a subgrid can be created. To create a subgrid for a condition click on the "+" button next to the intended box.

Whenever the configuration of the vertical and horizontal conditions is changed the corresponding output boxes will update as well.

Inputs

The input box labeled "Inputs" allows for the specification of inputs to the table. There is no limit in the number of inputs supported. Inputs are specified in a comma delimited list. names of inputs must conform to the Matlab syntax conventions.

Typing

Typing information can be specified for each input declared. This allows for users to declare inputs as dependent types. The format for typing follows that of PVS, some examples:

  • x, y, z - 3 inputs with the default type
  • x, y:bool - 2 inputs, y with specified type, x has the default type.
  • x:real, y:real, z:bool - 2 inputs of type real and one of type bool
  • x:real, y:{t:real|t>x} - 2 inputs of type real, y is dependent on x, and is restricted to those value strictly greater than x

Expression Name

the expression name will be the name identifying the block, it will also be the function name for generated Matlab code.

Typing

For single output tables, typing information for the output type of the function can be specified in this textbox. formatting for the typing is the same as that for inputs.

Conditions

Text input for a condition box must be valid embedded Matlab code. Expressions in condition boxes will be evaluated with the assumed type of boolean. Since embedded Matlab is not typechecked this is a potential cause of errors. By running a syntax check on a table, each expression in a condition box will be checked that it is of type boolean.

For a table with multiple outputs, the horizontal condition boxes represent different outputs, more detail about this in the following section.

Outputs

The outputs of the function are specified in the outputs grid. Outputs must be an expression that will evaluate to a definite value. Each output specified should be the same type, however since Matlab is not strongly typed, almost every possible value will be interpreted as a compatible type. The tool supports 2 output modes: single output and multiple output.

The output mode can be specified from the edit menu as seen in the following figure:

Single Output

For a single output table, the vertical grid can be used for another dimension of conditions. Each output cell shall be a single expression which will evaluate to the output under the interpreted conditions.

Multiple Output

For a table with multiple outputs, the horizontal condition grid is used to specify the outputs of the table. The same rules for typing apply as noted in the inputs and expression section of this document.

Each cell in the condition grid specifies the name (and type) of an output. See the following figure for an example. Each cell in the output grid specifies an output that corresponds to the output specified in the horizontal grid above it.

In the example below the table has 2 different outputs labeled, output1 and output2; the outputs have different types. Multiple outputs facilitates robust function specification.

Ports

The "Ports" button will bring up the ports and data manager window (see next figure.) From here you can specify the datatypes of signals, as well as any other functionality as you would with another Simulink block.

Edit Mode

The edit button is a toggle button which allows for the user to hide the editing buttons which include the new row, delete row, new subgrid, etc. buttons. Hiding these buttons allows for cleaner looking table with fewer distractions allowing the user to concentrate on the content in the table. see an example below.

Working with floating point numbers

Working with floating point numbers

Contents

Floating point numbers

One of the limitations with computers is the way that we have to represent real numbers. In a theoretical sense the real numbers has infinite range and infinite precision, however when we want to represent these numbers in a machine using the standard numerical representation for a variety of reasons we lose these properties.

Matlab and most computers use the IEEE 754 floating point standard. The standard defines the way real numbers can be represented from the bit level including the results of operations, and exceptions.

A full discussion of the standard is beyond the scope of this document we refer the interested reader to Matlab's documentation as well as the standard documentation

Proving tables with floating point numbers

The toolbox has support for proving tables with floating point inputs. Currently only PVS is supported for this feature, and in general manual intervention with the prover will likely be required.

Several new types are provided which can be used as anyother type in the input and output fields.

  • single - a finite or infinite single precision number
  • single_finite - a finite single precision number
  • double - a finite or infinite double precision number
  • double_finite - a finite double precision number

Contents

Floating point numbers

One of the limitations with computers is the way that we have to represent real numbers. In a theoretical sense the real numbers has infinite range and infinite precision, however when we want to represent these numbers in a machine using the standard numerical representation for a variety of reasons we lose these properties.

Matlab and most computers use the IEEE 754 floating point standard. The standard defines the way real numbers can be represented from the bit level including the results of operations, and exceptions.

A full discussion of the standard is beyond the scope of this document we refer the interested reader to Matlab's documentation as well as the standard documentation

Proving tables with floating point numbers

The toolbox has support for proving tables with floating point inputs. Currently only PVS is supported for this feature, and in general manual intervention with the prover will likely be required.

Several new types are provided which can be used as anyother type in the input and output fields.

  • single - a finite or infinite single precision number
  • single_finite - a finite single precision number
  • double - a finite or infinite double precision number
  • double_finite - a finite double precision number

A sample input string might be "x:double_finite, y:double_finite". The same rules for subtyping still apply, as it may be necessary to subtype inputs in order to get them to typecheck properly.

\ No newline at end of file diff --git a/html/html/TT_ug_opening.html b/html/html/TT_ug_opening.html index bccc72b..09d022c 100644 --- a/html/html/TT_ug_opening.html +++ b/html/html/TT_ug_opening.html @@ -4,9 +4,9 @@ Creating a new Tabular Expression

Creating a new Tabular Expression

Contents

Matlab

The table tool can be opened up from the Matlab environment, this allows users to create a table and generate an m-file function representing the tabular expression in the table.

To open up the Table Tool dialog click Start->Toolbox->Table Toolbox->Table Tool

Simulink

To create a table block in the Simulink environement, open up the block library. Select the Table Toolbox Library. From the Table Toolbox Library you should see A block Called Tabular Expression, Drag this block to a new or existing model to add a Tabular Expression. Double Click on the block in the model to bring up the Tabular Expression Dialog.

Saving a Table

Saving a Table

Contents

Saving to Block

Saving to a block will either save to an existing simulink block or create a new simulink block for the current table. Saving to a block is the default save option so if the "Save" button is pressed it will perform this action.

If changes are made in the table interface they will not be updated in the underlying generated code in the simulink block until saving is performed, it is important to remember to save before closing the interface.

Saving to an M-File

The Table Toolbox allows for users to save their table as an m-function. This allows the function to be called from Matlab scripts or functions; users can also run the function from the command line as a quick way of testing functionality.

To save a table to an m-file select the "save to m-file" command from the file menu as seen in the following screen shot.

The toolbox will create a file with the name expression_name.m, where expression_name is the name of your expression. The function can then be called as you would any other function in Matlab, ie. expression_name(arg1,arg2,...)

TT_ug_settings