• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            牽著老婆滿街逛

            嚴以律己,寬以待人. 三思而后行.
            GMail/GTalk: yanglinbo#google.com;
            MSN/Email: tx7do#yahoo.com.cn;
            QQ: 3 0 3 3 9 6 9 2 0 .

            Blitz++ 矩陣相乘(張量運算) 示例

            // 整理?by?RobinKin
            // Blitz++?張量計算的示例
            /* ****************************************************************************
            ?*?matmult.cpp?????Blitz++?tensor?notation?example
            ?*****************************************************************************
            ?*?This?example?illustrates?the?tensor-like?notation?provided?by?Blitz++.
            ?
            */


            #include?
            < blitz / array.h >
            #include?
            < iostream >

            using ? namespace ?blitz;

            int ?main()
            {
            ????
            // ?Create?two?4x4?arrays.??We?want?them?to?look?like?matrices,?so
            ????
            // ?we'll?make?the?valid?index?range?1..4?(rather?than?0..3?which?is
            ????
            // ?the?default).

            ????Range?r(
            1 , 4 );
            ????Array
            < float , 2 > ?A(r,r),?B(r,r);

            ????
            // ?The?first?will?be?a?Hilbert?matrix:
            ????
            //
            ????
            // ?a???=???1
            ????
            // ??ij???-----
            ????
            // ???????i+j-1
            ????
            //
            ????
            // ?Blitz++?provides?a?set?of?types?{?firstIndex,?secondIndex,??}
            ????
            // ?which?act?as?placeholders?for?indices.??These?can?be?used?directly
            ????
            // ?in?expressions.??For?example,?we?can?fill?out?the?A?matrix?like?this:

            ????firstIndex?i;????
            // ?Placeholder?for?the?first?index
            ????secondIndex?j;??? // ?Placeholder?for?the?second?index

            ????A?
            = ? 1.0 ? / ?(i + j - 1 );

            ????cout?
            << ? " A?=? " ? << ?A? << ?endl;

            ????
            // ?A?=?4?x?4
            ????
            // ?????????1???????0.5??0.333333??????0.25
            ????
            // ???????0.5??0.333333??????0.25???????0.2
            ????
            // ??0.333333??????0.25???????0.2??0.166667
            ????
            // ??????0.25???????0.2??0.166667??0.142857

            ????
            // ?Now?the?A?matrix?has?each?element?equal?to?a_ij?=?1/(i+j-1).

            ????
            // ?The?matrix?B?will?be?the?permutation?matrix
            ????
            //
            ????
            // ?[?0?0?0?1?]
            ????
            // ?[?0?0?1?0?]
            ????
            // ?[?0?1?0?0?]
            ????
            // ?[?1?0?0?0?]
            ????
            //
            ????
            // ?Here?are?two?ways?of?filling?out?B:

            ????B?
            = ?(i? == ?( 5 - j));????????? // ?Using?an?equation?--?a?bit?cryptic

            ????cout?
            << ? " B?=? " ? << ?B? << ?endl;

            ????
            // ?B?=?4?x?4
            ????
            // ?????????0?????????0?????????0?????????1
            ????
            // ?????????0?????????0?????????1?????????0
            ????
            // ?????????0?????????1?????????0?????????0
            ????
            // ?????????1?????????0?????????0?????????0

            ????B?
            = ? 0 ,? 0 ,? 0 ,? 1 ,??????????? // ?Using?an?initializer?list
            ???????? 0 ,? 0 ,? 1 ,? 0 ,???????????
            ????????
            0 ,? 1 ,? 0 ,? 0 ,
            ????????
            1 ,? 0 ,? 0 ,? 0 ;

            ????cout?
            << ? " B?=? " ? << ?B? << ?endl;

            ????
            // ?Now?some?examples?of?tensor-like?notation.

            ????Array
            < float , 3 > ?C(r,r,r);?? // ?A?three-dimensional?array:?1..4,?1..4,?1..4

            ????thirdIndex?k;?????????????
            // ?Placeholder?for?the?third?index

            ????
            // ?This?expression?will?set
            ????
            //
            ????
            // ?c????=?a???*?b
            ????
            // ??ijk????ik????kj

            ?
            // ???C?=?A(i,k)?*?B(k,j);
            ???cout? << ? " C?=? " ? << ?C? << ?endl;


            ????
            // ?In?real?tensor?notation,?the?repeated?k?index?would?imply?a
            ????
            // ?contraction?(or?summation)?along?k.??In?Blitz++,?you?must?explicitly
            ????
            // ?indicate?contractions?using?the?sum(expr,?index)?function:

            ????Array
            < float , 2 > ?D(r,r);
            ????D?
            = ?sum(A(i,k)? * ?B(k,j),?k); // 指標收縮,?計算矩陣積

            ????
            // ?The?above?expression?computes?the?matrix?product?of?A?and?B.

            ????cout?
            << ? " D?=? " ? << ?D? << ?endl;

            ????
            // ?D?=?4?x?4
            ????
            // ??????0.25??0.333333???????0.5?????????1
            ????
            // ???????0.2??????0.25??0.333333???????0.5
            ????
            // ??0.166667???????0.2??????0.25??0.333333
            ????
            // ??0.142857??0.166667???????0.2??????0.25

            ????
            // ?Indices?like?i,j,k?can?be?used?in?any?order?in?an?expression.
            ????
            // ?For?example,?the?following?computes?a?kronecker?product?of?A?and?B,
            ????
            // ?but?permutes?the?indices?along?the?way:

            ????Array
            < float , 4 > ?E(r,r,r,r);???? // ?A?four-dimensional?array
            ????fourthIndex?l;???????????????? // ?Placeholder?for?the?fourth?index

            ????E?
            = ?A(l,j)? * ?B(k,i); // 指標輪換
            // cout?<<?"E?=?"?<<?E?<<?endl;


            ????
            // ?Now?let's?fill?out?a?two-dimensional?array?with?a?radially?symmetric
            ????
            // ?decaying?sinusoid.

            ????
            int ?N? = ? 64 ;??????????????????? // ?Size?of?array:?N?x?N
            ????Array < float , 2 > ?F(N,N);
            ????
            float ?midpoint? = ?(N - 1 ) / 2 .;
            ????
            int ?cycles? = ? 3 ;
            ????
            float ?omega? = ? 2.0 ? * ?M_PI? * ?cycles? / ? double (N);
            ????
            float ?tau? = ? - ? 10.0 ? / ?N;

            ????F?
            = ?cos(omega? * ?sqrt(pow2(i - midpoint)? + ?pow2(j - midpoint)))
            ????????
            * ?exp(tau? * ?sqrt(pow2(i - midpoint)? + ?pow2(j - midpoint)));

            // cout?<<?"F?=?"?<<?F?<<?endl;

            ????
            return ? 0 ;
            }

            // 輸出
            A? = ? 4 ?x? 4 [????????? 1 ??????? 0.5 ?? 0.333333 ?????? 0.25 ????????? 0.5 ?? 0.333333 ?????? 0.25 ??????? 0.2 ???? 0.333333 ?????? 0.25 ??????? 0.2 ?? 0.166667 ???????? 0.25 ??????? 0.2 ?? 0.166667 ?? 0.142857 ?]

            B?
            = ? 4 ?x? 4
            [?????????
            0 ????????? 0 ????????? 0 ????????? 1 ?
            ??????????
            0 ????????? 0 ????????? 1 ????????? 0 ?
            ??????????
            0 ????????? 1 ????????? 0 ????????? 0 ?
            ??????????
            1 ????????? 0 ????????? 0 ????????? 0 ?]


            B?
            = ? 4 ?x? 4
            [?????????
            0 ????????? 0 ????????? 0 ????????? 1 ?
            ??????????
            0 ????????? 0 ????????? 1 ????????? 0 ?
            ??????????
            0 ????????? 1 ????????? 0 ????????? 0 ?
            ??????????
            1 ????????? 0 ????????? 0 ????????? 0 ?]


            D?
            = ? 4 ?x? 4
            [??????
            0.25 ?? 0.333333 ??????? 0.5 ????????? 1 ?
            ????????
            0.2 ?????? 0.25 ?? 0.333333 ??????? 0.5 ?
            ???
            0.166667 ??????? 0.2 ?????? 0.25 ?? 0.333333 ?
            ???
            0.142857 ?? 0.166667 ??????? 0.2 ?????? 0.25 ?]


            posted on 2006-07-01 13:24 楊粼波 閱讀(1057) 評論(0)  編輯 收藏 引用

            国产精品久久国产精品99盘| 日产精品久久久一区二区| 国内精品久久久久影院网站| 久久青青草原精品国产软件 | 99久久久精品| 国产精品永久久久久久久久久| 久久婷婷午色综合夜啪| 99久久成人国产精品免费| 久久天天日天天操综合伊人av| 97久久国产露脸精品国产| 久久国产精品久久| 国产成人精品综合久久久| 国产福利电影一区二区三区久久久久成人精品综合 | 成人综合久久精品色婷婷| 精品久久人妻av中文字幕| 久久午夜综合久久| 精品亚洲综合久久中文字幕| 久久久久久曰本AV免费免费| 国产亚洲精午夜久久久久久| 欧美黑人激情性久久| 亚洲AⅤ优女AV综合久久久| 办公室久久精品| 久久精品免费观看| 少妇久久久久久被弄高潮| 久久久国产亚洲精品| 日本精品久久久久久久久免费| 久久免费小视频| 国产精品美女久久久久网| 久久婷婷五月综合97色一本一本| 亚洲午夜久久久| 久久久久国产成人精品亚洲午夜| 岛国搬运www久久| 91久久九九无码成人网站| 国内精品伊人久久久久AV影院| 久久久无码一区二区三区| 99久久国产精品免费一区二区| 日韩欧美亚洲综合久久 | 久久福利青草精品资源站| 国产精品久久久久天天影视| 久久精品国产网红主播| 久久精品无码专区免费东京热 |