public void Visit(Compiled.Abs elem)
 {
     if (ValueOf(elem.Arg) >= 0)
     {
         LocalDerivative = elem.Adjoint;
     }
     else if (ValueOf(elem.Arg) < 0)
     {
         LocalDerivative = -elem.Adjoint;
     }
 }
示例#2
0
            public void Visit(Compiled.Abs elem)
            {
                double arg = ValueOf(elem.Arg);

                elem.Value = Math.Abs(arg);
                if (arg > 0)
                {
                    elem.Inputs[0].Weight = 1;
                }
                else
                {
                    elem.Inputs[0].Weight = -1;
                }
            }
 public int Visit(Abs abs)
 {
     return(Compile(abs, () =>
     {
         var argIndex = abs.Arg.Accept(this);
         var element = new Compiled.Abs {
             Arg = argIndex,
             Inputs = new Compiled.InputEdge[]
             {
                 new Compiled.InputEdge {
                     Index = argIndex
                 },
             }
         };
         return element;
     }));
 }
 public void Visit(Compiled.Abs elem)
 {
     elem.Value = Math.Abs(ValueOf(elem.Arg));
 }