Chris@10
|
1 (*
|
Chris@10
|
2 * Copyright (c) 1997-1999 Massachusetts Institute of Technology
|
Chris@10
|
3 * Copyright (c) 2003, 2007-11 Matteo Frigo
|
Chris@10
|
4 * Copyright (c) 2003, 2007-11 Massachusetts Institute of Technology
|
Chris@10
|
5 *
|
Chris@10
|
6 * This program is free software; you can redistribute it and/or modify
|
Chris@10
|
7 * it under the terms of the GNU General Public License as published by
|
Chris@10
|
8 * the Free Software Foundation; either version 2 of the License, or
|
Chris@10
|
9 * (at your option) any later version.
|
Chris@10
|
10 *
|
Chris@10
|
11 * This program is distributed in the hope that it will be useful,
|
Chris@10
|
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
Chris@10
|
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
Chris@10
|
14 * GNU General Public License for more details.
|
Chris@10
|
15 *
|
Chris@10
|
16 * You should have received a copy of the GNU General Public License
|
Chris@10
|
17 * along with this program; if not, write to the Free Software
|
Chris@10
|
18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
Chris@10
|
19 *
|
Chris@10
|
20 *)
|
Chris@10
|
21
|
Chris@10
|
22 type expr
|
Chris@10
|
23 val make : (Expr.expr * Expr.expr) -> expr
|
Chris@10
|
24 val two : expr
|
Chris@10
|
25 val one : expr
|
Chris@10
|
26 val i : expr
|
Chris@10
|
27 val zero : expr
|
Chris@10
|
28 val half : expr
|
Chris@10
|
29 val inverse_int : int -> expr
|
Chris@10
|
30 val inverse_int_sqrt : int -> expr
|
Chris@10
|
31 val int_sqrt : int -> expr
|
Chris@10
|
32 val times : expr -> expr -> expr
|
Chris@10
|
33 val ctimes : expr -> expr -> expr
|
Chris@10
|
34 val ctimesj : expr -> expr -> expr
|
Chris@10
|
35 val uminus : expr -> expr
|
Chris@10
|
36 val exp : int -> int -> expr
|
Chris@10
|
37 val sec : int -> int -> expr
|
Chris@10
|
38 val csc : int -> int -> expr
|
Chris@10
|
39 val tan : int -> int -> expr
|
Chris@10
|
40 val cot : int -> int -> expr
|
Chris@10
|
41 val plus : expr list -> expr
|
Chris@10
|
42 val real : expr -> expr
|
Chris@10
|
43 val imag : expr -> expr
|
Chris@10
|
44 val conj : expr -> expr
|
Chris@10
|
45 val nan : Expr.transcendent -> expr
|
Chris@10
|
46 val sigma : int -> int -> (int -> expr) -> expr
|
Chris@10
|
47
|
Chris@10
|
48 val (@*) : expr -> expr -> expr
|
Chris@10
|
49 val (@+) : expr -> expr -> expr
|
Chris@10
|
50 val (@-) : expr -> expr -> expr
|
Chris@10
|
51
|
Chris@10
|
52 (* a signal is a map from integers to expressions *)
|
Chris@10
|
53 type signal = int -> expr
|
Chris@10
|
54 val infinite : int -> signal -> signal
|
Chris@10
|
55
|
Chris@10
|
56 val store_real : Variable.variable -> expr -> Expr.expr
|
Chris@10
|
57 val store_imag : Variable.variable -> expr -> Expr.expr
|
Chris@10
|
58 val store :
|
Chris@10
|
59 Variable.variable * Variable.variable -> expr -> Expr.expr * Expr.expr
|
Chris@10
|
60
|
Chris@10
|
61 val assign_real : Variable.variable -> expr -> Expr.assignment
|
Chris@10
|
62 val assign_imag : Variable.variable -> expr -> Expr.assignment
|
Chris@10
|
63 val assign :
|
Chris@10
|
64 Variable.variable * Variable.variable ->
|
Chris@10
|
65 expr -> Expr.assignment * Expr.assignment
|
Chris@10
|
66
|
Chris@10
|
67 val hermitian : int -> (int -> expr) -> int -> expr
|
Chris@10
|
68 val antihermitian : int -> (int -> expr) -> int -> expr
|