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

SCM Repository

[diderot] Diff of /trunk/src/compiler/basis/basis.sml
ViewVC logotype

Diff of /trunk/src/compiler/basis/basis.sml

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2355, Sun Apr 7 11:35:08 2013 UTC revision 2356, Sun Apr 7 14:45:25 2013 UTC
# Line 38  Line 38 
38            BV.fn_modulate,            BV.fn_modulate,
39            BV.fn_normalize,            BV.fn_normalize,
40            BV.fn_principleEvec,            BV.fn_principleEvec,
41            BV.fn_trace            BV.fn_trace,
42              BV.fn_transpose
43          ] @ (List.map #2 BV.mathFns)          ] @ (List.map #2 BV.mathFns)
44    
45      val basisVars = [      val basisVars = [
46          (* kernels *)          (* kernels *)
47            BV.kn_bspln3,            BV.kn_bspln3,
48            BV.kn_bspln5,            BV.kn_bspln5,
49              BV.kn_c4hexic,
50            BV.kn_ctmr,            BV.kn_ctmr,
51            BV.kn_tent,            BV.kn_tent,
52            BV.kn_c1tent,            BV.kn_c1tent,
# Line 58  Line 60 
60            (N.op_neq, [BV.neq_bb, BV.neq_ii, BV.neq_ss, BV.neq_rr]),            (N.op_neq, [BV.neq_bb, BV.neq_ii, BV.neq_ss, BV.neq_rr]),
61            (N.op_gte, [BV.gte_ii, BV.gte_rr]),            (N.op_gte, [BV.gte_ii, BV.gte_rr]),
62            (N.op_gt, [BV.gt_ii, BV.gt_rr]),            (N.op_gt, [BV.gt_ii, BV.gt_rr]),
63            (N.op_add, [BV.add_ii, BV.add_tt, BV.add_ff]),            (N.op_add, [BV.add_ii, BV.add_tt, BV.add_ff, BV.add_fr, BV.add_rf]),
64            (N.op_sub, [BV.sub_ii, BV.sub_tt, BV.sub_ff]),            (N.op_sub, [BV.sub_ii, BV.sub_tt, BV.sub_ff, BV.sub_fr, BV.sub_rf]),
65            (N.op_mul, [BV.mul_ii, BV.mul_rr, BV.mul_rt, BV.mul_tr, BV.mul_rf, BV.mul_fr]),            (N.op_mul, [BV.mul_ii, BV.mul_rr, BV.mul_rt, BV.mul_tr, BV.mul_rf, BV.mul_fr]),
66            (N.op_div, [BV.div_ii, BV.div_rr, BV.div_tr, BV.div_tr]),            (N.op_div, [BV.div_ii, BV.div_rr, BV.div_tr, BV.div_tr]),
67            (N.op_exp, [BV.exp_ri, BV.exp_rr]),            (N.op_exp, [BV.exp_ri, BV.exp_rr]),
68              (N.op_curl, [BV.curl2D, BV.curl3D]),
69            (N.op_convolve, [BV.convolve_vk, BV.convolve_kv]),            (N.op_convolve, [BV.convolve_vk, BV.convolve_kv]),
70            (N.op_lt, [BV.lt_ii, BV.lt_rr]),            (N.op_lt, [BV.lt_ii, BV.lt_rr]),
71            (N.op_neg, [BV.neg_i, BV.neg_t, BV.neg_f]),            (N.op_neg, [BV.neg_i, BV.neg_t, BV.neg_f]),
# Line 71  Line 74 
74            (N.fn_evals, [BV.evals2x2, BV.evals3x3]),            (N.fn_evals, [BV.evals2x2, BV.evals3x3]),
75            (N.fn_evecs, [BV.evecs2x2, BV.evecs3x3]),            (N.fn_evecs, [BV.evecs2x2, BV.evecs3x3]),
76          (* assignment operators are bound to the corresponding binary operator *)          (* assignment operators are bound to the corresponding binary operator *)
77            (N.asgn_add, [BV.add_ii, BV.add_tt, BV.add_ff]),            (N.asgn_add, [BV.add_ii, BV.add_tt, BV.add_ff, BV.add_fr]),
78            (N.asgn_sub, [BV.sub_ii, BV.sub_tt, BV.sub_ff]),            (N.asgn_sub, [BV.sub_ii, BV.sub_tt, BV.sub_ff, BV.sub_fr]),
79            (N.asgn_mul, [BV.mul_ii, BV.mul_rr, BV.mul_tr, BV.mul_fr]),            (N.asgn_mul, [BV.mul_ii, BV.mul_rr, BV.mul_tr, BV.mul_fr]),
80            (N.asgn_div, [BV.div_ii, BV.div_rr, BV.div_tr, BV.div_tr])            (N.asgn_div, [BV.div_ii, BV.div_rr, BV.div_tr, BV.div_tr])
81          ]          ]
82    
83      (* seed the basis environment *)      (* seed the basis environment *)
84      val env = let      val env = let
85            fun insF (x, env) = Env.insertFunc(env, Atom.atom(Var.nameOf x), [x])            fun insF (x, env) = Env.insertFunc(env, Atom.atom(Var.nameOf x), Env.PrimFun[x])
86            fun insV (x, env) = Env.insertGlobal(env, Atom.atom(Var.nameOf x), x)            fun insV (x, env) = Env.insertGlobal(env, Atom.atom(Var.nameOf x), x)
87            fun insOvld ((f, fns), env) = Env.insertFunc(env, f, fns)            fun insOvld ((f, fns), env) = Env.insertFunc(env, f, Env.PrimFun fns)
88            val env = List.foldl insF (Env.new()) basisFunctions            val env = List.foldl insF (Env.new()) basisFunctions
89            val env = List.foldl insV env basisVars            val env = List.foldl insV env basisVars
90            val env = List.foldl insOvld env overloads            val env = List.foldl insOvld env overloads

Legend:
Removed from v.2355  
changed lines
  Added in v.2356

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