Home My Page Projects Code Snippets Project Openings diderot
Summary Activity Tracker Tasks SCM

SCM Repository

[diderot] Annotation of /branches/pure-cfg/src/compiler/IL/il-basis.sml
ViewVC logotype

Annotation of /branches/pure-cfg/src/compiler/IL/il-basis.sml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3349 - (view) (download)

1 : jhr 695 (* il-basis.sml
2 :     *
3 : jhr 3349 * This code is part of the Diderot Project (http://diderot-language.cs.uchicago.edu)
4 :     *
5 :     * COPYRIGHT (c) 2015 The University of Chicago
6 : jhr 695 * All rights reserved.
7 :     *
8 :     * These are functions that the various IL optimization passes treat as
9 :     * "black boxes", so we do not need to have a separate operator constructor
10 :     * for each.
11 :     *)
12 :    
13 :     structure ILBasis :> sig
14 :    
15 :     type name
16 :    
17 :     val toString : name -> string
18 :     val same : name * name -> bool
19 :     val hash : name -> word
20 :    
21 :     (* Basis function *)
22 :     val atan2 : name
23 :     val cos : name
24 :     val pow : name
25 :     val sin : name
26 :     val sqrt : name
27 :     val tan : name
28 :    
29 : jhr 828 val allFuns : name list
30 :    
31 : jhr 695 structure Set : ORD_SET where type Key.ord_key = name
32 :     structure Map : ORD_MAP where type Key.ord_key = name
33 :     structure Tbl : MONO_HASH_TABLE where type Key.hash_key = name
34 :    
35 :     end = struct
36 :    
37 :     type name = Atom.atom
38 :    
39 :     val toString = Atom.toString
40 :     val same = Atom.same
41 :     val hash = Atom.hash
42 :    
43 :     (* Basis function *)
44 :     val atan2 = Atom.atom "atan2"
45 :     val cos = Atom.atom "cos"
46 :     val pow = Atom.atom "pow"
47 :     val sin = Atom.atom "sin"
48 :     val sqrt = Atom.atom "sqrt"
49 :     val tan = Atom.atom "tan"
50 :    
51 : jhr 828 val allFuns = [
52 :     atan2,
53 :     cos,
54 :     pow,
55 :     sin,
56 :     sqrt,
57 :     tan
58 :     ]
59 :    
60 : jhr 695 structure Set = AtomSet
61 :     structure Map = AtomMap
62 :     structure Tbl = AtomTable
63 :    
64 :     end

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0