User Tools

Site Tools


tutorial_subsystem

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

tutorial_subsystem [2014/07/12 07:00]
guillaume Part 1 posted
tutorial_subsystem [2017/04/19 13:31]
Line 1: Line 1:
-======SubSystem in Alpha====== 
  
-In this tutorial, we will present how to write structured alpha programs with subsystems, and we will present the associated transformations. 
- 
- 
-====Syntax of Use Equation (without extension domain)==== 
- 
-Let us assume that we want to compute the mean of the values of a vector. It is feasible through the following Alpha system: 
-<sxh alphabets; gutter:​false>​ 
-affine mean {N | N>0} 
-input 
- float A {k | 0<​=k<​N};​ 
-output 
- float C {|}; 
-local 
- float temp {|}; 
-let 
- temp = reduce(+, [k], A[k]); 
- C = temp / N; 
-. 
-</​sxh>​ 
- 
-However, let us assume that you already have another Alpha system which computes the sum of the elements of a vector. It is possible to use this affine system (instead of rewriting its equation in the main system), by calling it through a "use equation":​ 
-<sxh alphabets; gutter:​false>​ 
-affine sum {P| P>0} // Computes the sum of the elements of a vector of size P 
-input 
- float vect {i | 0<​=i<​P }; 
-output 
- float Res; 
-let 
- Res = reduce(+, [k], vect[k]); 
-. 
- 
-affine mean {N | N>0} 
-input 
- float A {k | 0<​=k<​N};​ 
-output 
- float C {|}; 
-local 
- float temp {|}; 
-let 
- use sum[N] (A) returns (temp); // Compute "​temp"​ using the system "​sum"​ 
- C = temp / N; 
-. 
-</​sxh>​ 
- 
-The system "​mean"​ is calling the system "​sum"​ (which is called a subsystem). The subsystem is called with the parameter "​N"​ and the input "​A"​. After doing its computation,​ the result of "​sum"​ will be stored inside the local variable "​temp"​. 
- 
- 
-In general, the syntax of a use equation is the following: 
-<sxh alphabets; gutter:​false>​ 
-use subsystem_name[list of parameters] (list of input expressions) returns (list of output variables); 
-</​sxh>​ 
- 
-If your subsystem have several parameters/​inputs/​outputs,​ you have to provide them in the order in which they are declared. 
- 
- 
- 
-====Extension domain==== 
- 
-(incoming) 
- 
- 
-====Transformations involving subsystems==== 
- 
-(incoming, after the previous incoming) 
tutorial_subsystem.txt ยท Last modified: 2017/04/19 13:31 (external edit)