User Tools

Site Tools


tutorial_lud

Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
tutorial_lud [2017/04/19 14:09]
127.0.0.1 external edit
tutorial_lud [2018/06/19 15:45] (current)
sanjay
Line 1: Line 1:
-In this tutorial, we write an Alphabets program, starting from a mathematical equation for LU decomposition. ​ Then we will generate code to execute the alphabets ​program, and test the generated code for correctness.+In this tutorial, we write an Alphabets ​(or Alpha, for now the two are synonymous) ​program, starting from a mathematical equation for LU decomposition. ​ Then we will generate code to execute the alpha program, and test the generated code for correctness.
  
 The equation for LU Decomposition,​ derived from first principles using simple algebra in {{:​foundations.pdf|Foundations}} (pg.3), is as follows: The equation for LU Decomposition,​ derived from first principles using simple algebra in {{:​foundations.pdf|Foundations}} (pg.3), is as follows:
Line 20: Line 20:
 [Temp note due to : in the last case of L, the condition is "1 < j <= i"] [Temp note due to : in the last case of L, the condition is "1 < j <= i"]
  
-=====Writing ​Alphabets=====+=====Writing ​Alpha=====
 ====Step 1 : Affine System and Parameters ==== ====Step 1 : Affine System and Parameters ====
-Let's start from an empty alphabets ​file, with LUD as the name of the system, and a positive integer N as its parameter. +Let's start from an empty alpha file, with LUD as the name of the system, and a positive integer N as its parameter. 
-A system (Affine System) takes its name from system of affine recurrence equations, and represents a block of computation. An Alphabets ​program may contain multiple systems.+A system (Affine System) takes its name from system of affine recurrence equations, and represents a block of computation. An Alpha program may contain multiple systems.
  
 **Caveat:​** ​ Remember the phrase, "​It'​s not a bug, it's a feature"? ​ Well, in a tutorial, a feature is called a "​learning opportunity."​ **Caveat:​** ​ Remember the phrase, "​It'​s not a bug, it's a feature"? ​ Well, in a tutorial, a feature is called a "​learning opportunity."​
Line 34: Line 34:
  
 ====Step 2 : Variable Declarations==== ====Step 2 : Variable Declarations====
-In most cases, a computation uses some inputs and produces outputs. Such variables must be declared with a name, a data type, and a shape/​size. ​ In Alphabets, the shape/size is represented with polyhedral domains.+In most cases, a computation uses some inputs and produces outputs. Such variables must be declared with a name, a data type, and a shape/​size. ​ In Alpha, the shape/size is represented with polyhedral domains.
 For this example, the ''​A''​ matrix is given, and we are computing two triangular matrices ''​L''​ and ''​U''​. ''​A''​ is an NxN square matrix. ​ The declaration for ''​A''​ looks as follows: For this example, the ''​A''​ matrix is given, and we are computing two triangular matrices ''​L''​ and ''​U''​. ''​A''​ is an NxN square matrix. ​ The declaration for ''​A''​ looks as follows:
 <sxh alphabets; gutter:​true>​ <sxh alphabets; gutter:​true>​
tutorial_lud.1492632561.txt.gz · Last modified: 2017/04/19 14:09 by 127.0.0.1