Project

General

Profile

Statistics
| Branch: | Tag: | Revision:

lustrec / test / src / arrays_arnaud / generic1.lus @ 22fe1c93

History | View | Annotate | Download (773 Bytes)

1
type choice = enum { one, two };
2
type entier = int;
3

    
4
const PI = 3;
5

    
6
const tab = [1.,2.,3.,4.];
7

    
8
const M1 = [ [ 2.1 ], [ 1.0 ], [ 3.0 ], [ 4.2 ] ] ;
9
const M2 = [ [ 1.1, 2.2, 1.0, 1.0 ] ] ;
10

    
11
function _MatMul_real (
12
	const n, m, p : int ;
13
	in1 : real^n^m ;
14
	in2 : real^m^p)
15
returns (
16
	out : real^n^p) ;
17

    
18
imported node imp1(const m:int; a:int^(PI*m)) returns (c:int^m);
19

    
20
imported node imp2(const n:int; a:int^n) returns (d:int^n);
21

    
22
node mult(
23
     in1 : real^4^1)
24
returns (
25
     out : real^1^1)
26
var l,p;
27
let
28
  l = [ tab, [3.,4.,5.,6.] ];
29
  p = l + [tab,tab+[3.,4.,5.,6.]];
30
  out = _MatMul_real (1,4,1,[ [ 2.1 ], [ 1.0 ], [ 3.0 ], [ 4.2 ] ], in1);
31
tel
32
    
33
node base(const p:int; x:int^(PI*p)) returns (y:int^p)
34
var z:int^(PI*p);
35
let
36
  z = imp2(PI*p, x);
37
  y = imp1(p, z);
38
tel
39