tutorial_lud

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

Both sides previous revision Previous revision | Next revision Both sides next revision | ||

tutorial_lud [2018/06/19 15:41] sanjay |
tutorial_lud [2018/06/19 15:45] sanjay |
||
---|---|---|---|

Line 1: | Line 1: | ||

- | 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 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." | ||

Parameters are runtime constants represented with some symbol in the code. In this example, parameter N will be used to define the size of the matrices, which is not known until runtime. | Parameters are runtime constants represented with some symbol in the code. In this example, parameter N will be used to define the size of the matrices, which is not known until runtime. | ||

- | <sxh alphabets; gutter:true> | + | <sxh alpha; gutter:true> |

affine LUD {N|N>0} | affine LUD {N|N>0} | ||

. | . |

tutorial_lud.txt · Last modified: 2019/04/05 09:02 by sanjay