File indexing completed on 2026-06-02 08:48:23
0001
0002
0003
0004
0005
0006
0007
0008 #ifndef COMBINATIONFUNCTIONSCALARPRODUCT_H_
0009 #define COMBINATIONFUNCTIONSCALARPRODUCT_H_
0010
0011 #include <vector>
0012
0013 #include "../neural_network_neuron/NeuralNetworkNeuron.h"
0014 #include "CombinationFunction.h"
0015
0016 namespace NumA {
0017
0018 class CombinationFunctionScalarProduct: public CombinationFunction {
0019
0020 public:
0021
0022 static const unsigned int classId;
0023
0024 CombinationFunctionScalarProduct();
0025 virtual ~CombinationFunctionScalarProduct();
0026 virtual CombinationFunctionScalarProduct* clone() const;
0027
0028 virtual double evaluate(const std::vector<NeuralNetworkNeuron*>& neurons,
0029 double bias) const;
0030
0031 virtual double evaluateFirstPartialDerivativeForCell(
0032 const NeuralNetworkNeuron* const neuron,
0033 const std::vector<NeuralNetworkNeuron*>& neurons,
0034 double bias) const;
0035 virtual double evaluateFirstPartialDerivativeForNeuron(
0036 const NeuralNetworkNeuron* const neuron,
0037 const std::vector<NeuralNetworkNeuron*>& neurons,
0038 double bias) const;
0039 virtual double evaluateFirstPartialDerivativeForBias(
0040 const std::vector<NeuralNetworkNeuron*>& neurons,
0041 double bias) const;
0042
0043 protected:
0044
0045 CombinationFunctionScalarProduct(
0046 const CombinationFunctionScalarProduct& other);
0047 };
0048
0049 }
0050
0051 #endif