User Tools

Site Tools


schedule_code_generator_for_code_with_subsystem

Differences

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

Link to this comparison view

schedule_code_generator_for_code_with_subsystem [2014/07/07 13:56]
yun [Example program with subsystem]
schedule_code_generator_for_code_with_subsystem [2017/04/19 13:31]
Line 1: Line 1:
-======Schedule Code Generator for SubSystem====== 
-Given an affine system with subsystems/​useEquations,​ this page shows how to specify the targetmapping for the system and generate the code.  
-====Example program with subsystem==== 
- 
-The following code is the alpha program for matrix matrix multiplication with dot-product subsystem. ​ 
-<sxh alphabets; gutter:​false>​ 
-affine matrix_product_SubSyst {N,K,M | N>0 && K>0 && M > 0} // Product between a N*K matrix and a K*M matrix 
-input 
- float A {i,k | 0<​=i<​N && 0<​=k<​K};​ 
- float B {k,j | 0<​=k<​K && 0<​=j<​M};​ 
-output 
- float C {i,j | 0<​=i<​N && 0<​=j<​M};​ 
-let 
- use {iP,​jP|0<​=iP<​N && 0<​=jP<​M} dot_product[K] ((pi,​pj,​k->​pi,​k)@A,​(pi,​pj,​k->​k,​pj)@B) returns (C); 
-. 
- 
-affine dot_product {N| N>0} // Product between 2 vector of size N 
-input 
- float vect1 {i | 0<​=i<​N }; 
- float vect2 {i | 0<​=i<​N }; 
-output 
- float Res; 
-local 
- float temp {i | 0<​=i<​N};​ 
-let 
- temp[i] = case 
- {i|i==0} ​  : vect1[0] * vect2[0]; 
- {i |0<​i<​N} : temp[i-1] + vect1[i]*vect2[i]; ​ 
- esac; 
- Res[] = temp[N-1]; 
-. 
- 
-</​sxh>​ 
  
schedule_code_generator_for_code_with_subsystem.txt ยท Last modified: 2017/04/19 13:31 (external edit)