template<class SystemTag , class ValueType , class InputTensorDimension  = bc::traits::Integer<3>, class InputDescriptor  = Tensor_Descriptor<ValueType, SystemTag, InputTensorDimension>, class OutputDescriptor  = Tensor_Descriptor<ValueType, SystemTag, Integer<1>>> 
      
 
 
template<class SystemTag , class ValueType , class InputTensorDimension  = bc::traits::Integer<3>, class InputDescriptor  = Tensor_Descriptor<ValueType, SystemTag, InputTensorDimension>, class OutputDescriptor  = Tensor_Descriptor<ValueType, SystemTag, Integer<1>>> 
      
 
 
template<class SystemTag , class ValueType , class InputTensorDimension  = bc::traits::Integer<3>, class InputDescriptor  = Tensor_Descriptor<ValueType, SystemTag, InputTensorDimension>, class OutputDescriptor  = Tensor_Descriptor<ValueType, SystemTag, Integer<1>>> 
      
 
 
template<class SystemTag , class ValueType , class InputTensorDimension  = bc::traits::Integer<3>, class InputDescriptor  = Tensor_Descriptor<ValueType, SystemTag, InputTensorDimension>, class OutputDescriptor  = Tensor_Descriptor<ValueType, SystemTag, Integer<1>>> 
      
 
 
template<class SystemTag , class ValueType , class InputTensorDimension  = bc::traits::Integer<3>, class InputDescriptor  = Tensor_Descriptor<ValueType, SystemTag, InputTensorDimension>, class OutputDescriptor  = Tensor_Descriptor<ValueType, SystemTag, Integer<1>>> 
      
        
          | using bc::nn::Flatten< SystemTag, ValueType, InputTensorDimension, InputDescriptor, OutputDescriptor >::self_type =  Flatten<SystemTag, ValueType, InputTensorDimension> | 
      
 
 
template<class SystemTag , class ValueType , class InputTensorDimension  = bc::traits::Integer<3>, class InputDescriptor  = Tensor_Descriptor<ValueType, SystemTag, InputTensorDimension>, class OutputDescriptor  = Tensor_Descriptor<ValueType, SystemTag, Integer<1>>> 
      
        
          | using bc::nn::Flatten< SystemTag, ValueType, InputTensorDimension, InputDescriptor, OutputDescriptor >::system_tag =  SystemTag | 
      
 
 
template<class SystemTag , class ValueType , class InputTensorDimension  = bc::traits::Integer<3>, class InputDescriptor  = Tensor_Descriptor<ValueType, SystemTag, InputTensorDimension>, class OutputDescriptor  = Tensor_Descriptor<ValueType, SystemTag, Integer<1>>> 
      
        
          | using bc::nn::Flatten< SystemTag, ValueType, InputTensorDimension, InputDescriptor, OutputDescriptor >::value_type =  ValueType | 
      
 
 
template<class SystemTag , class ValueType , class InputTensorDimension  = bc::traits::Integer<3>, class InputDescriptor  = Tensor_Descriptor<ValueType, SystemTag, InputTensorDimension>, class OutputDescriptor  = Tensor_Descriptor<ValueType, SystemTag, Integer<1>>> 
  
  | 
        
          | bc::nn::Flatten< SystemTag, ValueType, InputTensorDimension, InputDescriptor, OutputDescriptor >::Flatten | ( | bc::Dim< input_tensor_dim::value > | input_shape | ) |  |  | inline | 
 
 
template<class SystemTag , class ValueType , class InputTensorDimension  = bc::traits::Integer<3>, class InputDescriptor  = Tensor_Descriptor<ValueType, SystemTag, InputTensorDimension>, class OutputDescriptor  = Tensor_Descriptor<ValueType, SystemTag, Integer<1>>> 
template<class X , class Delta > 
  
  | 
        
          | auto bc::nn::Flatten< SystemTag, ValueType, InputTensorDimension, InputDescriptor, OutputDescriptor >::back_propagation | ( | const X & | x, |  
          |  |  | const Delta & | dy |  
          |  | ) |  |  |  | inline | 
 
 
template<class SystemTag , class ValueType , class InputTensorDimension  = bc::traits::Integer<3>, class InputDescriptor  = Tensor_Descriptor<ValueType, SystemTag, InputTensorDimension>, class OutputDescriptor  = Tensor_Descriptor<ValueType, SystemTag, Integer<1>>> 
template<class Matrix > 
  
  | 
        
          | auto bc::nn::Flatten< SystemTag, ValueType, InputTensorDimension, InputDescriptor, OutputDescriptor >::forward_propagation | ( | const Matrix & | x | ) |  |  | inline | 
 
 
template<class SystemTag , class ValueType , class InputTensorDimension  = bc::traits::Integer<3>, class InputDescriptor  = Tensor_Descriptor<ValueType, SystemTag, InputTensorDimension>, class OutputDescriptor  = Tensor_Descriptor<ValueType, SystemTag, Integer<1>>> 
template<class Vector > 
  
  | 
        
          | auto bc::nn::Flatten< SystemTag, ValueType, InputTensorDimension, InputDescriptor, OutputDescriptor >::single_predict | ( | const Vector & | x | ) |  |  | inline |