⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 calcperf.c

📁 nnToolKit 神经网络工具包是基于 MATLAB 神经网络工具箱自行开发的一组神经网络算法函数库
💻 C
📖 第 1 页 / 共 4 页
字号:
             * n = N{i,ts};
             * a = 1 ./ (1 + exp(-n));
             * k = find(~finite(a));
             * a(k) = sign(n(k));
             * Ac{i,ts2} = a;
             * otherwise
             * Ac{i,ts2} = feval(transferFcn{i},N{i,ts});
             * end
             * end
             * end
             */
            for (; ; ) {
                mclForLoopIterator viter__;
                for (mclForStart(
                       &viter__,
                       mlfIndexRef(mclVa(net, "net"), ".hint.simLayerOrder"),
                       NULL,
                       NULL);
                     mclForNext(&viter__, &i);
                     ) {
                    mlfAssign(
                      &ts2,
                      mclPlus(
                        mclVv(numLayerDelays, "numLayerDelays"),
                        mlfScalar(v_)));
                    mlfAssign(
                      &inputInds,
                      mlfIndexRef(
                        mclVv(inputConnectFrom, "inputConnectFrom"),
                        "{?}",
                        mclVv(i, "i")));
                    {
                        mclForLoopIterator viter__0;
                        for (mclForStart(
                               &viter__0,
                               mclVv(inputInds, "inputInds"),
                               NULL,
                               NULL);
                             mclForNext(&viter__0, &j);
                             ) {
                            mxArray * v_0
                              = mclInitialize(
                                  mlfIndexRef(
                                    mclVv(inputWeightFcn, "inputWeightFcn"),
                                    "{?,?}",
                                    mclVv(i, "i"),
                                    mclVv(j, "j")));
                            if (mclSwitchCompare(v_0, _mxarray2_)) {
                                mlfIndexAssign(
                                  IWZ,
                                  "{?,?,?}",
                                  mclVv(i, "i"),
                                  mclVv(j, "j"),
                                  mlfScalar(v_),
                                  mclFeval(
                                    mclValueVarargout(),
                                    mlxMtimes,
                                    mlfIndexRef(
                                      mclVv(IW, "IW"),
                                      "{?,?}",
                                      mclVv(i, "i"),
                                      mclVv(j, "j")),
                                    mlfIndexRef(
                                      mclVa(PD, "PD"),
                                      "{?,?,?}",
                                      mclVv(i, "i"),
                                      mclVv(j, "j"),
                                      mlfScalar(v_)),
                                    NULL));
                            } else {
                                mlfIndexAssign(
                                  IWZ,
                                  "{?,?,?}",
                                  mclVv(i, "i"),
                                  mclVv(j, "j"),
                                  mlfScalar(v_),
                                  mlfFeval(
                                    mclValueVarargout(),
                                    mlfIndexRef(
                                      mclVv(inputWeightFcn, "inputWeightFcn"),
                                      "{?,?}",
                                      mclVv(i, "i"),
                                      mclVv(j, "j")),
                                    mlfIndexRef(
                                      mclVv(IW, "IW"),
                                      "{?,?}",
                                      mclVv(i, "i"),
                                      mclVv(j, "j")),
                                    mlfIndexRef(
                                      mclVa(PD, "PD"),
                                      "{?,?,?}",
                                      mclVv(i, "i"),
                                      mclVv(j, "j"),
                                      mlfScalar(v_)),
                                    NULL));
                            }
                            mxDestroyArray(v_0);
                        }
                        mclDestroyForLoopIterator(viter__0);
                    }
                    mlfAssign(
                      &layerInds,
                      mlfIndexRef(
                        mclVv(layerConnectFrom, "layerConnectFrom"),
                        "{?}",
                        mclVv(i, "i")));
                    {
                        mclForLoopIterator viter__1;
                        for (mclForStart(
                               &viter__1,
                               mclVv(layerInds, "layerInds"),
                               NULL,
                               NULL);
                             mclForNext(&viter__1, &j);
                             ) {
                            mlfAssign(
                              &thisLayerDelays,
                              mlfIndexRef(
                                mclVv(layerDelays, "layerDelays"),
                                "{?,?}",
                                mclVv(i, "i"),
                                mclVv(j, "j")));
                            {
                                mxArray * a_
                                  = mclInitialize(
                                      mclBoolToArray(
                                        mclLengthInt(
                                          mclVv(
                                            thisLayerDelays,
                                            "thisLayerDelays"))
                                        == 1));
                                if (mlfTobool(a_)
                                    && mlfTobool(
                                         mclAnd(
                                           a_,
                                           mclEq(
                                             mclVv(
                                               thisLayerDelays,
                                               "thisLayerDelays"),
                                             _mxarray4_)))) {
                                    mxDestroyArray(a_);
                                    mlfAssign(
                                      &Ad,
                                      mlfIndexRef(
                                        mclVv(*Ac, "Ac"),
                                        "{?,?}",
                                        mclVv(j, "j"),
                                        mclVv(ts2, "ts2")));
                                } else {
                                    mxDestroyArray(a_);
                                    mlfAssign(
                                      &Ad,
                                      mlfCell2mat(
                                        mlfCtranspose(
                                          mclArrayRef2(
                                            mclVv(*Ac, "Ac"),
                                            mclVv(j, "j"),
                                            mclFeval(
                                              mclValueVarargout(),
                                              mlxMinus,
                                              mclVv(ts2, "ts2"),
                                              mlfIndexRef(
                                                mclVv(
                                                  layerDelays, "layerDelays"),
                                                "{?,?}",
                                                mclVv(i, "i"),
                                                mclVv(j, "j")),
                                              NULL)))));
                                }
                            }
                            {
                                mxArray * v_1
                                  = mclInitialize(
                                      mlfIndexRef(
                                        mclVv(
                                          layerWeightFcn, "layerWeightFcn"),
                                        "{?,?}",
                                        mclVv(i, "i"),
                                        mclVv(j, "j")));
                                if (mclSwitchCompare(v_1, _mxarray2_)) {
                                    mlfIndexAssign(
                                      LWZ,
                                      "{?,?,?}",
                                      mclVv(i, "i"),
                                      mclVv(j, "j"),
                                      mlfScalar(v_),
                                      mclFeval(
                                        mclValueVarargout(),
                                        mlxMtimes,
                                        mlfIndexRef(
                                          mclVv(LW, "LW"),
                                          "{?,?}",
                                          mclVv(i, "i"),
                                          mclVv(j, "j")),
                                        mclVv(Ad, "Ad"),
                                        NULL));
                                } else {
                                    mlfIndexAssign(
                                      LWZ,
                                      "{?,?,?}",
                                      mclVv(i, "i"),
                                      mclVv(j, "j"),
                                      mlfScalar(v_),
                                      mlfFeval(
                                        mclValueVarargout(),
                                        mlfIndexRef(
                                          mclVv(
                                            layerWeightFcn, "layerWeightFcn"),
                                          "{?,?}",
                                          mclVv(i, "i"),
                                          mclVv(j, "j")),
                                        mlfIndexRef(
                                          mclVv(LW, "LW"),
                                          "{?,?}",
                                          mclVv(i, "i"),
                                          mclVv(j, "j")),
                                        mclVv(Ad, "Ad"),
                                        NULL));
                                }
                                mxDestroyArray(v_1);
                            }
                        }
                        mclDestroyForLoopIterator(viter__1);
                    }
                    if (mlfTobool(
                          mlfIndexRef(
                            mclVa(net, "net"),
                            ".biasConnect(?)",
                            mclVv(i, "i")))) {
                        mlfAssign(
                          &Z,
                          mlfHorzcat(
                            mlfIndexRef(
                              mclVv(*IWZ, "IWZ"),
                              "(?,?,?)",
                              mclVv(i, "i"),
                              mclVv(inputInds, "inputInds"),
                              mlfScalar(v_)),
                            mlfIndexRef(
                              mclVv(*LWZ, "LWZ"),
                              "(?,?,?)",
                              mclVv(i, "i"),
                              mclVv(layerInds, "layerInds"),
                              mlfScalar(v_)),
                            mclArrayRef1(mclVv(*BZ, "BZ"), mclVv(i, "i")),
                            NULL));
                    } else {
                        mlfAssign(
                          &Z,
                          mlfHorzcat(
                            mlfIndexRef(
                              mclVv(*IWZ, "IWZ"),
                              "(?,?,?)",
                              mclVv(i, "i"),
                              mclVv(inputInds, "inputInds"),
                              mlfScalar(v_)),
                            mlfIndexRef(
                              mclVv(*LWZ, "LWZ"),
                              "(?,?,?)",
                              mclVv(i, "i"),
                              mclVv(layerInds, "layerInds"),
                              mlfScalar(v_)),
                            NULL));
                    }
                    {
                        mxArray * v_2
                          = mclInitialize(
                              mlfIndexRef(
                                mclVv(netInputFcn, "netInputFcn"),
                                "{?}",
                                mclVv(i, "i")));
                        if (mclSwitchCompare(v_2, _mxarray5_)) {
                            mlfIndexAssign(
                              N,
                              "{?,?}",
                              mclVv(i, "i"),
                              mlfScalar(v_),
                              mlfIndexRef(mclVv(Z, "Z"), "{?}", _mxarray0_));
                            {
                                int v_3 = mclForIntStart(2);
                                int e_0 = mclLengthInt(mclVv(Z, "Z"));
                                if (v_3 > e_0) {
                                    mlfAssign(&k, _mxarray1_);
                                } else {
                                    for (; ; ) {
                                        mlfIndexAssign(
                                          N,
                                          "{?,?}",
                                          mclVv(i, "i"),
                                          mlfScalar(v_),
                                          mclFeval(
                                            mclValueVarargout(),
                                            mlxPlus,
                                            mlfIndexRef(
                                              mclVv(*N, "N"),
                                              "{?,?}",
                                              mclVv(i, "i"),
                                              mlfScalar(v_)),
                                            mlfIndexRef(
                                              mclVv(Z, "Z"),
                                              "{?}",
                                              mlfScalar(v_3)),
                                            NULL));
                                        if (v_3 == e_0) {
                                            break;
                                        }
                                        ++v_3;
                                    }
                                    mlfAssign(&k, mlfScalar(v_3));
                                }
                            }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -