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

SCM Repository

[diderot] Diff of /branches/charisee/src/compiler/translate/translate-basis.sml
ViewVC logotype

Diff of /branches/charisee/src/compiler/translate/translate-basis.sml

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

revision 1640, Wed Nov 16 02:19:51 2011 UTC revision 1910, Tue Jun 5 12:02:36 2012 UTC
# Line 151  Line 151 
151                                            (* end case *))),                                            (* end case *))),
152                  (BV.op_not,             simpleOp Op.Not),                  (BV.op_not,             simpleOp Op.Not),
153                  (BV.fn_atan2,           basisFn ILBasis.atan2),                  (BV.fn_atan2,           basisFn ILBasis.atan2),
                 (BV.fn_convolve,        fn (y, [_, dv, _], [h, img]) =>  
                                           assign(y, Op.Field(pruneDim(MV.toDim dv)), [img, h])),  
154                  (BV.fn_cos,             basisFn ILBasis.cos),                  (BV.fn_cos,             basisFn ILBasis.cos),
155                  (BV.op_cross,           simpleOp Op.Cross),                  (BV.op_cross,           simpleOp Op.Cross),
                 (BV.fn_cross,           simpleOp Op.Cross),  
156                  (BV.op_outer,           fn (y, [dv1, dv2], xs) => let                  (BV.op_outer,           fn (y, [dv1, dv2], xs) => let
157                                            val d1 = pruneDim(MV.toDim dv1)                                            val d1 = pruneDim(MV.toDim dv1)
158                                            val d2 = pruneDim(MV.toDim dv2)                                            val d2 = pruneDim(MV.toDim dv2)
159                                            in                                            in
160                                              assign (y, Op.Outer(DstTy.tensorTy[d1, d2]), xs)                                              assign (y, Op.Outer(DstTy.tensorTy[d1, d2]), xs)
161                                            end),                                            end),
                 (BV.fn_outer,           fn (y, [dv1, dv2], xs) => let  
                                           val d1 = pruneDim(MV.toDim dv1)  
                                           val d2 = pruneDim(MV.toDim dv2)  
                                           in  
                                             assign (y, Op.Outer(DstTy.tensorTy[d1, d2]), xs)  
                                           end),  
162                  (BV.op_inner,           fn (y, [sh1, sh2, _], xs) => let                  (BV.op_inner,           fn (y, [sh1, sh2, _], xs) => let
163                                            val ty1 as DstTy.TensorTy dd1 = pruneShape sh1                                            val ty1 as DstTy.TensorTy dd1 = pruneShape sh1
164                                            val ty2 as DstTy.TensorTy dd2 = pruneShape sh2                                            val ty2 as DstTy.TensorTy dd2 = pruneShape sh2
# Line 181  Line 172 
172                                            in                                            in
173                                              assign (y, rator, xs)                                              assign (y, rator, xs)
174                                            end),                                            end),
                 (BV.fn_dot,             vectorOp Op.Dot),  
175                  (BV.fn_inside,          fn (y, [_, dv, _], xs) =>                  (BV.fn_inside,          fn (y, [_, dv, _], xs) =>
176                                            assign(y, Op.Inside(pruneDim(MV.toDim dv)), xs)),                                            assign(y, Op.Inside(pruneDim(MV.toDim dv)), xs)),
177                  (BV.clamp_rrr,          simpleOp (Op.Clamp DstTy.realTy)),                  (BV.clamp_rrr,          simpleOp (Op.Clamp DstTy.realTy)),
# Line 201  Line 191 
191                  (BV.evals3x3,           eigenVal (Op.Eigen3x3, 3)),                  (BV.evals3x3,           eigenVal (Op.Eigen3x3, 3)),
192                  (BV.evecs2x2,           eigenVec (Op.Eigen2x2, 2)),                  (BV.evecs2x2,           eigenVec (Op.Eigen2x2, 2)),
193                  (BV.evecs3x3,           eigenVec (Op.Eigen3x3, 3)),                  (BV.evecs3x3,           eigenVec (Op.Eigen3x3, 3)),
194                    (BV.fn_fmod,            basisFn ILBasis.fmod),
195                    (BV.fn_log10,           basisFn ILBasis.log10),
196                    (BV.fn_ln,              basisFn ILBasis.ln),
197                  (BV.fn_max,             simpleOp Op.Max),                  (BV.fn_max,             simpleOp Op.Max),
198                  (BV.fn_min,             simpleOp Op.Min),                  (BV.fn_min,             simpleOp Op.Min),
199                  (BV.fn_modulate,        vectorOp Op.Mul),                  (BV.fn_modulate,        vectorOp Op.Mul),
200                  (BV.fn_normalize,       vectorOp Op.Normalize),                  (BV.fn_normalize,       vectorOp Op.Normalize),
                 (BV.fn_outer,           fn _ => raise Fail "outer not implemented yet"), (* FIXME *)  
                 (BV.fn_pow,             basisFn ILBasis.pow),  
201                  (BV.fn_principleEvec,   vectorOp Op.PrincipleEvec),                  (BV.fn_principleEvec,   vectorOp Op.PrincipleEvec),
202                  (BV.fn_sin,             basisFn ILBasis.sin),                  (BV.fn_sin,             basisFn ILBasis.sin),
203                  (BV.fn_sqrt,            basisFn ILBasis.sqrt),                  (BV.fn_sqrt,            basisFn ILBasis.sqrt),

Legend:
Removed from v.1640  
changed lines
  Added in v.1910

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