• <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 楊粼波 閱讀(1061) 評論(0)  編輯 收藏 引用

            18岁日韩内射颜射午夜久久成人| 精品久久久久久久无码| 久久久精品日本一区二区三区| 久久中文字幕视频、最近更新| 18禁黄久久久AAA片| 久久久久亚洲AV成人片| 久久久精品无码专区不卡| 亚洲乱码中文字幕久久孕妇黑人| 日本精品久久久中文字幕| 伊人久久大香线蕉综合5g| 久久精品国产秦先生| 免费无码国产欧美久久18| 久久不射电影网| 色偷偷久久一区二区三区| 久久久久综合中文字幕| 91精品国产91久久久久福利| 亚洲精品无码久久不卡| 亚洲国产成人久久综合碰碰动漫3d| 久久无码中文字幕东京热| 国产三级观看久久| 精品久久久久久| 久久久久亚洲AV无码永不| 久久亚洲精品成人无码网站| 久久久久久一区国产精品| 99久久99久久精品国产| 久久精品无码午夜福利理论片 | 亚州日韩精品专区久久久| 狠狠干狠狠久久| 91久久精一区二区三区大全| 久久久久亚洲国产| 偷偷做久久久久网站| 亚洲欧美日韩精品久久亚洲区| 精品久久久久久无码免费| 久久精品国产半推半就| 精品久久香蕉国产线看观看亚洲| 国产美女久久精品香蕉69| 韩国免费A级毛片久久| 精品久久久久久久无码 | 欧美伊人久久大香线蕉综合| 国产精品免费久久久久影院 | 久久精品国产福利国产琪琪|