• <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)  編輯 收藏 引用

            中文字幕成人精品久久不卡| 中文字幕久久精品无码| 欧美久久精品一级c片片| 久久电影网一区| 欧美精品九九99久久在观看| 亚洲欧美日韩中文久久| 久久这里只精品国产99热| 久久亚洲中文字幕精品一区四| 久久久久久免费视频| 国产精品久久久久久久| 亚洲国产成人久久一区WWW| 国产成人精品白浆久久69| 亚洲美日韩Av中文字幕无码久久久妻妇| 一本久道久久综合狠狠爱| 久久精品国产亚洲精品| 国产91色综合久久免费| 久久久久综合国产欧美一区二区| 久久婷婷五月综合色奶水99啪 | 久久亚洲综合色一区二区三区| 亚洲国产视频久久| 久久久久亚洲精品无码网址 | 久久99精品国产麻豆婷婷| 久久久无码精品亚洲日韩蜜臀浪潮 | 精品伊人久久久| 久久成人精品| 精品国产乱码久久久久久浪潮| 亚洲国产精品高清久久久| 亚洲精品乱码久久久久久蜜桃 | 国产韩国精品一区二区三区久久| 狠狠色婷婷久久综合频道日韩| 久久久艹| 久久久久久午夜精品| 伊人久久大香线蕉成人| 亚洲欧美国产日韩综合久久| 久久久久国产精品三级网| 国产一区二区三精品久久久无广告 | 久久亚洲欧美国产精品| 无码AV波多野结衣久久| 日韩精品久久久久久免费| 久久久久人妻精品一区| 久久人妻少妇嫩草AV无码专区|