CPNLBase *
CPersistTabularDistribFun::Load(CContextLoad *pContext)
{
    bool isUnitFun;
    CTabularDistribFun *pDF;
    const CNodeType *const* ppNodeType;
    int nNode;

    LoadForDistribFun(&isUnitFun, &nNode, &ppNodeType, pContext);

    if(isUnitFun)
    {
	bool bDense;
	pContext->GetAttribute(&bDense, "IsDense");
	pDF = CTabularDistribFun::CreateUnitFunctionDistribution(nNode,
	    ppNodeType, bDense);
	return pDF;
    }

    CMatrix<float> *pMat = static_cast<CMatrix<float>*>(pContext->Get("MatTable"));

    pDF = CTabularDistribFun::Create(nNode, ppNodeType, NULL);
    pDF->AttachMatrix(pMat, matTable);

    return pDF;
}