forked from MrBaro75/Warrior_EA
43 lines
1.7 KiB
MQL5
43 lines
1.7 KiB
MQL5
//+------------------------------------------------------------------+
| |||
//| ArrayLayer.mqh |
| |||
//| AnimateDread |
| |||
//| https://www.mql5.com |
| |||
//+------------------------------------------------------------------+
| |||
//| CArrayLayer - array-of-CLayer container, CNet's own topology |
| |||
//| storage. Needs CLayer (AI\Network.mqh) already declared - |
| |||
//| included from Network.mqh at the exact point this class used to |
| |||
//| sit (right after CLayer), so ordering matches the original file. |
| |||
//| Extracted verbatim (SOLID cleanup) - no logic changes. |
| |||
//+------------------------------------------------------------------+
| |||
class CArrayLayer : public CArrayObj
| |||
{
| |||
public:
| |||
CArrayLayer(void) {};
| |||
~CArrayLayer(void) {};
| |||
//---
| |||
virtual bool CreateElement(uint neurons, uint outputs);
| |||
virtual int Type(void) const { return defArrayLayer; }
| |||
};
| |||
//+------------------------------------------------------------------+
| |||
//| |
| |||
//+------------------------------------------------------------------+
| |||
bool CArrayLayer::CreateElement(uint neurons, uint outputs)
| |||
{
| |||
if(neurons <= 0)
| |||
return false;
| |||
//---
| |||
CLayer *layer = new CLayer(outputs);
| |||
if(CheckPointer(layer) == POINTER_INVALID)
| |||
return false;
| |||
//---
| |||
if(!layer.Reserve(neurons + 1))
| |||
return false;
| |||
for(uint i = 0; i <= neurons; i++)
| |||
{
| |||
if(!layer.CreateElement(i))
| |||
return false;
| |||
layer.IncreaseTotal();
| |||
}
| |||
//---
| |||
return (Add(layer));
| |||
}
|