function createXORNetworknNguyenWidrowUntrained()
{
    // random matrix data.  However, it provides a constant starting point
    // for the unit tests.
    $network = new BasicNetwork();
    $network->addLayer(new BasicLayer(null, true, 2));
    $network->addLayer(new BasicLayer(new ActivationSigmoid(), true, 3));
    $network->addLayer(new BasicLayer(new ActivationSigmoid(), false, 3));
    $network->addLayer(new BasicLayer(null, false, 1));
    $network->getStructure() . finalizeStructure();
    (new NguyenWidrowRandomizer())->randomize($network);
    return $network;
}
function createThreeLayerNet()
{
    $network = new BasicNetwork();
    $network->addLayer(new BasicLayer(2));
    $network->addLayer(new BasicLayer(3));
    $network->addLayer(new BasicLayer(1));
    $network->getStructure()->finalizeStructure();
    $network->reset();
    return $network;
}