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

SCM Repository

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

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

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

revision 1910, Tue Jun 5 12:02:36 2012 UTC revision 1911, Tue Jun 5 13:51:17 2012 UTC
# Line 154  Line 154 
154                                            (* end case *))),                                            (* end case *))),
155                  (BV.op_not,             simpleOp Op.Not),                  (BV.op_not,             simpleOp Op.Not),
156                  (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])),  
157                  (BV.fn_cos,             basisFn ILBasis.cos),                  (BV.fn_cos,             basisFn ILBasis.cos),
158                  (BV.op_cross,           simpleOp Op.Cross),                  (BV.op_cross,           simpleOp Op.Cross),
                 (BV.fn_cross,           simpleOp Op.Cross),  
159                  (BV.op_outer,           fn (y, [dv1, dv2], xs) => let                  (BV.op_outer,           fn (y, [dv1, dv2], xs) => let
160                                            val d1 = pruneDim(MV.toDim dv1)                                            val d1 = pruneDim(MV.toDim dv1)
161                                            val d2 = pruneDim(MV.toDim dv2)                                            val d2 = pruneDim(MV.toDim dv2)
162                                            in                                            in
163                                              assign (y, Op.Outer(DstTy.tensorTy[d1, d2]), xs)                                              assign (y, Op.Outer(DstTy.tensorTy[d1, d2]), xs)
164                                            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),  
165                  (BV.op_inner,           fn (y, [sh1, sh2, _], xs) => let                  (BV.op_inner,           fn (y, [sh1, sh2, _], xs) => let
166                                            val ty1 as DstTy.TensorTy dd1 = pruneShape sh1                                            val ty1 as DstTy.TensorTy dd1 = pruneShape sh1
167                                            val ty2 as DstTy.TensorTy dd2 = pruneShape sh2                                            val ty2 as DstTy.TensorTy dd2 = pruneShape sh2
# Line 184  Line 175 
175                                            in                                            in
176                                              assign (y, rator, xs)                                              assign (y, rator, xs)
177                                            end),                                            end),
                 (BV.fn_dot,             vectorOp Op.Dot),  
178                  (BV.fn_inside,          fn (y, [_, dv, _], xs) =>                  (BV.fn_inside,          fn (y, [_, dv, _], xs) =>
179                                            assign(y, Op.Inside(pruneDim(MV.toDim dv)), xs)),                                            assign(y, Op.Inside(pruneDim(MV.toDim dv)), xs)),
180                  (BV.clamp_rrr,          simpleOp (Op.Clamp DstTy.realTy)),                  (BV.clamp_rrr,          simpleOp (Op.Clamp DstTy.realTy)),
# Line 204  Line 194 
194                  (BV.evals3x3,           eigenVal (Op.Eigen3x3, 3)),                  (BV.evals3x3,           eigenVal (Op.Eigen3x3, 3)),
195                  (BV.evecs2x2,           eigenVec (Op.Eigen2x2, 2)),                  (BV.evecs2x2,           eigenVec (Op.Eigen2x2, 2)),
196                  (BV.evecs3x3,           eigenVec (Op.Eigen3x3, 3)),                  (BV.evecs3x3,           eigenVec (Op.Eigen3x3, 3)),
197                    (BV.fn_fmod,            basisFn ILBasis.fmod),
198                    (BV.fn_log10,           basisFn ILBasis.log10),
199                    (BV.fn_ln,              basisFn ILBasis.ln),
200                  (BV.fn_max,             simpleOp Op.Max),                  (BV.fn_max,             simpleOp Op.Max),
201                  (BV.fn_min,             simpleOp Op.Min),                  (BV.fn_min,             simpleOp Op.Min),
202                  (BV.fn_modulate,        vectorOp Op.Mul),                  (BV.fn_modulate,        vectorOp Op.Mul),
203                  (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),  
204                  (BV.fn_principleEvec,   vectorOp Op.PrincipleEvec),                  (BV.fn_principleEvec,   vectorOp Op.PrincipleEvec),
205                  (BV.fn_sin,             basisFn ILBasis.sin),                  (BV.fn_sin,             basisFn ILBasis.sin),
206                  (BV.fn_sqrt,            basisFn ILBasis.sqrt),                  (BV.fn_sqrt,            basisFn ILBasis.sqrt),

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

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