package org.jlayer.app; 

import javax.annotation.processing.Generated;
import java.util.Random;
import org.jlayer.model.*;
import org.jlayer.util.*;

@Generated("org.jlayer.Processor") 
abstract public class ALayer_Hidden_ extends LayerBase<Hidden> implements ILayer_Hidden_ {

   // class ALayer_Hidden_.D1
   abstract static public class D1 extends LayerBase.D1<Hidden> implements ILayer_Hidden_.D1 {
      // constructors 
      public D1(ILayer_Hidden_.D1 layerD1){ super(layerD1); }
      public D1(Hidden[] array){ super(array); }
      // field items 
      Layer.D1<Hidden,MyUtils.Signal> y;
      VectorLayer.D1<Hidden,MyUtils.Signal> x;
      VectorLayer.D1<Hidden,MyUtils.Signal> inErr;
      // method items 
      abstract public void initSignals(Random r);
      abstract public void Forward();
      abstract public void Backward(double eta);
   }

   // class ALayer_Hidden_.D2
   abstract static public class D2 extends LayerBase.D2<Hidden> implements ILayer_Hidden_.D2 {
      // constructors 
      public D2(ILayer_Hidden_.D2 layerD2){ super(layerD2); }
      public D2(Hidden[][] array){ super(array); }
      // field items 
      Layer.D2<Hidden,MyUtils.Signal> y;
      VectorLayer.D2<Hidden,MyUtils.Signal> x;
      VectorLayer.D2<Hidden,MyUtils.Signal> inErr;
      // method items 
      abstract public void initSignals(Random r);
      abstract public void Forward();
      abstract public void Backward(double eta);
   }

   // class ALayer_Hidden_.D3
   abstract static public class D3 extends LayerBase.D3<Hidden> implements ILayer_Hidden_.D3 {
      // constructors 
      public D3(ILayer_Hidden_.D3 layerD3){ super(layerD3); }
      public D3(Hidden[][][] array){ super(array); }
      // field items 
      Layer.D3<Hidden,MyUtils.Signal> y;
      VectorLayer.D3<Hidden,MyUtils.Signal> x;
      VectorLayer.D3<Hidden,MyUtils.Signal> inErr;
      // method items 
      abstract public void initSignals(Random r);
      abstract public void Forward();
      abstract public void Backward(double eta);
   }

// class ALayer_Hidden_

   // constructors 
   public ALayer_Hidden_(Hidden[] array){ super(array); }
   public ALayer_Hidden_(Hidden[][] array){ super(array); }
   public ALayer_Hidden_(Hidden[][][] array){ super(array); }

   public ALayer_Hidden_(ILayer_Hidden_ layer){ super(layer); }
   public ALayer_Hidden_(ILayer_Hidden_.D1 layer){ super(layer); }
   public ALayer_Hidden_(ILayer_Hidden_.D2 layer){ super(layer); }
   public ALayer_Hidden_(ILayer_Hidden_.D3 layer){ super(layer); }

   // field items 
   Layer<Hidden,MyUtils.Signal> y;
   VectorLayer<Hidden,MyUtils.Signal> x;
   VectorLayer<Hidden,MyUtils.Signal> inErr;
   // method items 
   abstract public void initSignals(Random r);
   abstract public void Forward();
   abstract public void Backward(double eta);

} // end of class ALayer_Hidden_
