예제 #1
0
            ///Additions By Carpe Noctem:
            public void Visit(Compiled.Sin elem)
            {
                double arg = ValueOf(elem.Arg);

                elem.Value            = Math.Sin(arg);
                elem.Inputs[0].Weight = Math.Cos(arg);
            }
 public int Visit(Sin sin)
 {
     return(Compile(sin, () =>
     {
         var argIndex = sin.Arg.Accept(this);
         var element = new Compiled.Sin {
             Arg = argIndex,
             Inputs = new Compiled.InputEdge[]
             {
                 new Compiled.InputEdge {
                     Index = argIndex
                 },
             }
         };
         return element;
     }));
 }
            ///Additions by Carpe Noctem:

            public void Visit(Compiled.Sin elem)
            {
                LocalDerivative = elem.Adjoint * Math.Cos(ValueOf(elem.Arg));
            }
            //Additions by Carpe Noctem:

            public void Visit(Compiled.Sin elem)
            {
                elem.Value = Math.Sin(ValueOf(elem.Arg));
            }