Improve the performance of MatrixTransposeMatrix multiply.

Compute A'B as rank-1 sums of outer products of the rows of
A and B. This is more cache coherent.

Benchmark                                                 Time             CPU      Time Old      Time New       CPU Old       CPU New
--------------------------------------------------------------------------------------------------------------------------------------
BM_MatrixMatrixMultiplyDynamic/2/2/2                   +0.0031         +0.0033            27            27            27            27
BM_MatrixMatrixMultiplyDynamic/2/2/4                   +0.0383         +0.0380            41            42            41            42
BM_MatrixMatrixMultiplyDynamic/2/2/6                   +0.0001         +0.0019            58            58            57            58
BM_MatrixMatrixMultiplyDynamic/2/2/8                   +0.0169         +0.0169            70            71            70            71
BM_MatrixMatrixMultiplyDynamic/2/2/10                  +0.0162         +0.0161            83            85            83            85
BM_MatrixMatrixMultiplyDynamic/2/2/12                  -0.0049         -0.0048            93            93            93            93
BM_MatrixMatrixMultiplyDynamic/2/2/15                  +0.0131         +0.0129           114           115           114           115
BM_MatrixMatrixMultiplyDynamic/2/4/2                   +0.0494         +0.0489            32            34            32            34
BM_MatrixMatrixMultiplyDynamic/2/4/4                   +0.0121         +0.0121            51            52            51            52
BM_MatrixMatrixMultiplyDynamic/2/4/6                   +0.0134         +0.0138            70            71            70            71
BM_MatrixMatrixMultiplyDynamic/2/4/8                   +0.0006         +0.0005            90            90            90            90
BM_MatrixMatrixMultiplyDynamic/2/4/10                  +0.0248         +0.0248           107           110           107           110
BM_MatrixMatrixMultiplyDynamic/2/4/12                  -0.0239         -0.0234           125           122           125           122
BM_MatrixMatrixMultiplyDynamic/2/4/15                  +0.0611         +0.0605           155           164           155           164
BM_MatrixMatrixMultiplyDynamic/2/6/2                   -0.0017         -0.0017            39            39            39            39
BM_MatrixMatrixMultiplyDynamic/2/6/4                   +0.0139         +0.0147            59            60            59            60
BM_MatrixMatrixMultiplyDynamic/2/6/6                   -0.1062         -0.1003            89            80            89            80
BM_MatrixMatrixMultiplyDynamic/2/6/8                   -0.0339         -0.0344           116           112           115           111
BM_MatrixMatrixMultiplyDynamic/2/6/10                  +0.0568         +0.0455           142           150           141           148
BM_MatrixMatrixMultiplyDynamic/2/6/12                  -0.0073         -0.0062           155           154           155           154
BM_MatrixMatrixMultiplyDynamic/2/6/15                  +0.0219         +0.0215           187           191           187           191
BM_MatrixMatrixMultiplyDynamic/2/8/2                   -0.0165         -0.0160            43            42            43            42
BM_MatrixMatrixMultiplyDynamic/2/8/4                   -0.0247         -0.0245            71            69            70            69
BM_MatrixMatrixMultiplyDynamic/2/8/6                   -0.0642         -0.0614           104            98           104            98
BM_MatrixMatrixMultiplyDynamic/2/8/8                   -0.0607         -0.0599           133           125           133           125
BM_MatrixMatrixMultiplyDynamic/2/8/10                  -0.0523         -0.0510           166           157           166           157
BM_MatrixMatrixMultiplyDynamic/2/8/12                  -0.0381         -0.0376           189           182           189           182
BM_MatrixMatrixMultiplyDynamic/2/8/15                  -0.0725         -0.0716           243           226           243           225
BM_MatrixMatrixMultiplyDynamic/2/10/2                  -0.0421         -0.0416            50            48            50            48
BM_MatrixMatrixMultiplyDynamic/2/10/4                  -0.0558         -0.0549            83            78            83            78
BM_MatrixMatrixMultiplyDynamic/2/10/6                  -0.0527         -0.0518           115           109           115           109
BM_MatrixMatrixMultiplyDynamic/2/10/8                  -0.0421         -0.0413           150           144           150           144
BM_MatrixMatrixMultiplyDynamic/2/10/10                 -0.0606         -0.0601           202           190           202           190
BM_MatrixMatrixMultiplyDynamic/2/10/12                 -0.0409         -0.0406           224           215           224           215
BM_MatrixMatrixMultiplyDynamic/2/10/15                 -0.0308         -0.0302           277           268           277           268
BM_MatrixMatrixMultiplyDynamic/2/12/2                  -0.0059         -0.0058            53            52            53            52
BM_MatrixMatrixMultiplyDynamic/2/12/4                  +0.0019         +0.0023            87            87            87            87
BM_MatrixMatrixMultiplyDynamic/2/12/6                  -0.0032         -0.0025           126           125           126           125
BM_MatrixMatrixMultiplyDynamic/2/12/8                  -0.0039         -0.0038           159           158           159           158
BM_MatrixMatrixMultiplyDynamic/2/12/10                 -0.0175         -0.0171           205           201           205           201
BM_MatrixMatrixMultiplyDynamic/2/12/12                 -0.0643         -0.0633           295           276           294           276
BM_MatrixMatrixMultiplyDynamic/2/12/15                 -0.0215         -0.0201           328           321           328           321
BM_MatrixMatrixMultiplyDynamic/2/15/2                  +0.0092         +0.0103            58            58            58            58
BM_MatrixMatrixMultiplyDynamic/2/15/4                  +0.0762         +0.0765            98           105            98           105
BM_MatrixMatrixMultiplyDynamic/2/15/6                  -0.0155         -0.0172           138           136           138           136
BM_MatrixMatrixMultiplyDynamic/2/15/8                  +0.0674         +0.0658           180           192           180           191
BM_MatrixMatrixMultiplyDynamic/2/15/10                 +0.0254         +0.0255           236           242           236           242
BM_MatrixMatrixMultiplyDynamic/2/15/12                 -0.0383         -0.0378           289           278           289           278
BM_MatrixMatrixMultiplyDynamic/2/15/15                 -0.0313         -0.0308           407           394           406           394
BM_MatrixMatrixMultiplyDynamic/4/2/2                   +0.0286         +0.0286            42            43            42            43
BM_MatrixMatrixMultiplyDynamic/4/2/4                   -0.0455         -0.0439            71            68            71            68
BM_MatrixMatrixMultiplyDynamic/4/2/6                   +0.0221         +0.0229            93            95            93            95
BM_MatrixMatrixMultiplyDynamic/4/2/8                   -0.0226         -0.0225           120           118           120           118
BM_MatrixMatrixMultiplyDynamic/4/2/10                  -0.1153         -0.1130           158           140           158           140
BM_MatrixMatrixMultiplyDynamic/4/2/12                  -0.0145         -0.0143           164           162           164           162
BM_MatrixMatrixMultiplyDynamic/4/2/15                  -0.0396         -0.0393           205           197           205           197
BM_MatrixMatrixMultiplyDynamic/4/4/2                   -0.0696         -0.0682            57            53            57            53
BM_MatrixMatrixMultiplyDynamic/4/4/4                   -0.0233         -0.0231            91            89            91            89
BM_MatrixMatrixMultiplyDynamic/4/4/6                   -0.0711         -0.0702           130           121           130           121
BM_MatrixMatrixMultiplyDynamic/4/4/8                   -0.1180         -0.1113           178           157           176           157
BM_MatrixMatrixMultiplyDynamic/4/4/10                  -0.0301         -0.0282           194           188           194           188
BM_MatrixMatrixMultiplyDynamic/4/4/12                  -0.1156         -0.1137           251           222           251           222
BM_MatrixMatrixMultiplyDynamic/4/4/15                  -0.0182         -0.0179           307           302           307           301
BM_MatrixMatrixMultiplyDynamic/4/6/2                   -0.0228         -0.0220            64            63            64            63
BM_MatrixMatrixMultiplyDynamic/4/6/4                   +0.0048         +0.0045           106           107           106           107
BM_MatrixMatrixMultiplyDynamic/4/6/6                   -0.0131         -0.0126           155           153           155           153
BM_MatrixMatrixMultiplyDynamic/4/6/8                   -0.0526         -0.0502           211           200           210           200
BM_MatrixMatrixMultiplyDynamic/4/6/10                  -0.0995         -0.0975           274           247           274           247
BM_MatrixMatrixMultiplyDynamic/4/6/12                  -0.0436         -0.0430           297           284           297           284
BM_MatrixMatrixMultiplyDynamic/4/6/15                  +0.0042         +0.0050           344           345           343           345
BM_MatrixMatrixMultiplyDynamic/4/8/2                   -0.0283         -0.0279            74            72            74            72
BM_MatrixMatrixMultiplyDynamic/4/8/4                   -0.0282         -0.0277           125           122           125           122
BM_MatrixMatrixMultiplyDynamic/4/8/6                   -0.0756         -0.0693           185           171           184           171
BM_MatrixMatrixMultiplyDynamic/4/8/8                   -0.0510         -0.0444           267           253           265           253
BM_MatrixMatrixMultiplyDynamic/4/8/10                  -0.0512         -0.0460           301           285           299           285
BM_MatrixMatrixMultiplyDynamic/4/8/12                  -0.0046         -0.0006           351           349           349           349
BM_MatrixMatrixMultiplyDynamic/4/8/15                  -0.0795         -0.0785           452           416           451           416
BM_MatrixMatrixMultiplyDynamic/4/10/2                  -0.0415         -0.0406            85            81            85            81
BM_MatrixMatrixMultiplyDynamic/4/10/4                  -0.0118         -0.0118           143           141           143           141
BM_MatrixMatrixMultiplyDynamic/4/10/6                  -0.0484         -0.0478           217           206           216           206
BM_MatrixMatrixMultiplyDynamic/4/10/8                  -0.0373         -0.0372           280           269           280           269
BM_MatrixMatrixMultiplyDynamic/4/10/10                 +0.0083         +0.0083           350           353           350           353
BM_MatrixMatrixMultiplyDynamic/4/10/12                 -0.0364         -0.0365           436           420           436           420
BM_MatrixMatrixMultiplyDynamic/4/10/15                 -0.0221         -0.0210           513           502           512           502
BM_MatrixMatrixMultiplyDynamic/4/12/2                  -0.0569         -0.0565            94            89            94            89
BM_MatrixMatrixMultiplyDynamic/4/12/4                  -0.0343         -0.0338           162           157           162           157
BM_MatrixMatrixMultiplyDynamic/4/12/6                  +0.0197         +0.0198           227           232           227           231
BM_MatrixMatrixMultiplyDynamic/4/12/8                  -0.0390         -0.0388           310           298           310           298
BM_MatrixMatrixMultiplyDynamic/4/12/10                 -0.0088         -0.0085           389           386           389           386
BM_MatrixMatrixMultiplyDynamic/4/12/12                 +0.0524         +0.0505           545           574           545           572
BM_MatrixMatrixMultiplyDynamic/4/12/15                 +0.0801         +0.0764           597           645           597           642
BM_MatrixMatrixMultiplyDynamic/4/15/2                  -0.0024         -0.0026            99            99            99            99
BM_MatrixMatrixMultiplyDynamic/4/15/4                  -0.0289         -0.0270           187           181           186           181
BM_MatrixMatrixMultiplyDynamic/4/15/6                  -0.0264         -0.0261           263           256           263           256
BM_MatrixMatrixMultiplyDynamic/4/15/8                  -0.0344         -0.0334           349           337           348           337
BM_MatrixMatrixMultiplyDynamic/4/15/10                 -0.0189         -0.0191           454           446           454           445
BM_MatrixMatrixMultiplyDynamic/4/15/12                 -0.0483         -0.0470           524           499           523           498
BM_MatrixMatrixMultiplyDynamic/4/15/15                 -0.1084         -0.1070           840           749           838           748
BM_MatrixMatrixMultiplyDynamic/6/2/2                   -0.0574         -0.0561            59            56            59            56
BM_MatrixMatrixMultiplyDynamic/6/2/4                   -0.0727         -0.0721            98            91            98            91
BM_MatrixMatrixMultiplyDynamic/6/2/6                   -0.0292         -0.0283           133           129           133           129
BM_MatrixMatrixMultiplyDynamic/6/2/8                   -0.0283         -0.0278           167           162           167           162
BM_MatrixMatrixMultiplyDynamic/6/2/10                  -0.0482         -0.0476           216           206           216           206
BM_MatrixMatrixMultiplyDynamic/6/2/12                  -0.0117         -0.0115           243           240           243           240
BM_MatrixMatrixMultiplyDynamic/6/2/15                  -0.0234         -0.0225           299           292           299           292
BM_MatrixMatrixMultiplyDynamic/6/4/2                   -0.0950         -0.0898            79            72            79            72
BM_MatrixMatrixMultiplyDynamic/6/4/4                   -0.0300         -0.0298           130           127           130           127
BM_MatrixMatrixMultiplyDynamic/6/4/6                   -0.0379         -0.0376           175           169           175           169
BM_MatrixMatrixMultiplyDynamic/6/4/8                   -0.0340         -0.0319           236           228           236           228
BM_MatrixMatrixMultiplyDynamic/6/4/10                  -0.0498         -0.0490           289           275           289           275
BM_MatrixMatrixMultiplyDynamic/6/4/12                  +0.0134         +0.0134           325           330           325           330
BM_MatrixMatrixMultiplyDynamic/6/4/15                  -0.0836         -0.0794           469           429           466           429
BM_MatrixMatrixMultiplyDynamic/6/6/2                   -0.0614         -0.0563            91            86            91            86
BM_MatrixMatrixMultiplyDynamic/6/6/4                   -0.0249         -0.0239           153           149           152           149
BM_MatrixMatrixMultiplyDynamic/6/6/6                   -0.0442         -0.0438           235           224           234           224
BM_MatrixMatrixMultiplyDynamic/6/6/8                   -0.0127         -0.0083           296           292           295           292
BM_MatrixMatrixMultiplyDynamic/6/6/10                  +0.0305         +0.0302           360           371           360           371
BM_MatrixMatrixMultiplyDynamic/6/6/12                  -0.0479         -0.0463           434           413           433           413
BM_MatrixMatrixMultiplyDynamic/6/6/15                  -0.0774         -0.0742           542           500           540           500
BM_MatrixMatrixMultiplyDynamic/6/8/2                   -0.0617         -0.0611           106            99           106            99
BM_MatrixMatrixMultiplyDynamic/6/8/4                   -0.1153         -0.1147           202           179           202           179
BM_MatrixMatrixMultiplyDynamic/6/8/6                   -0.0591         -0.0589           270           254           270           254
BM_MatrixMatrixMultiplyDynamic/6/8/8                   -0.0677         -0.0671           381           355           381           355
BM_MatrixMatrixMultiplyDynamic/6/8/10                  -0.0771         -0.0757           451           416           450           416
BM_MatrixMatrixMultiplyDynamic/6/8/12                  -0.0520         -0.0519           522           495           522           495
BM_MatrixMatrixMultiplyDynamic/6/8/15                  -0.0386         -0.0386           639           614           638           614
BM_MatrixMatrixMultiplyDynamic/6/10/2                  -0.0764         -0.0756           121           111           120           111
BM_MatrixMatrixMultiplyDynamic/6/10/4                  -0.0847         -0.0777           224           205           222           205
BM_MatrixMatrixMultiplyDynamic/6/10/6                  -0.0762         -0.0748           320           295           319           295
BM_MatrixMatrixMultiplyDynamic/6/10/8                  -0.0160         -0.0164           413           407           413           406
BM_MatrixMatrixMultiplyDynamic/6/10/10                 +0.0438         +0.0429           526           549           525           548
BM_MatrixMatrixMultiplyDynamic/6/10/12                 +0.0641         +0.0615           606           645           605           643
BM_MatrixMatrixMultiplyDynamic/6/10/15                 +0.0983         +0.0965           741           814           740           812
BM_MatrixMatrixMultiplyDynamic/6/12/2                  +0.0697         +0.0663           135           144           135           144
BM_MatrixMatrixMultiplyDynamic/6/12/4                  -0.0230         -0.0240           251           245           250           244
BM_MatrixMatrixMultiplyDynamic/6/12/6                  -0.0728         -0.0703           365           338           364           338
BM_MatrixMatrixMultiplyDynamic/6/12/8                  -0.1444         -0.1402           514           440           511           440
BM_MatrixMatrixMultiplyDynamic/6/12/10                 -0.1268         -0.1216           628           548           624           548
BM_MatrixMatrixMultiplyDynamic/6/12/12                 -0.1323         -0.1250           883           766           875           766
BM_MatrixMatrixMultiplyDynamic/6/12/15                 -0.1337         -0.1304           995           862           991           862
BM_MatrixMatrixMultiplyDynamic/6/15/2                  -0.1163         -0.1140           158           140           158           140
BM_MatrixMatrixMultiplyDynamic/6/15/4                  -0.0721         -0.0689           285           265           284           265
BM_MatrixMatrixMultiplyDynamic/6/15/6                  -0.0597         -0.0582           414           389           413           389
BM_MatrixMatrixMultiplyDynamic/6/15/8                  -0.1189         -0.1173           563           496           562           496
BM_MatrixMatrixMultiplyDynamic/6/15/10                 -0.0754         -0.0737           749           693           747           692
BM_MatrixMatrixMultiplyDynamic/6/15/12                 +0.0141         +0.0153           871           883           866           879
BM_MatrixMatrixMultiplyDynamic/6/15/15                 -0.1184         -0.1152          1398          1233          1387          1228
BM_MatrixMatrixMultiplyDynamic/8/2/2                   -0.0232         -0.0242            77            75            77            75
BM_MatrixMatrixMultiplyDynamic/8/2/4                   +0.1114         +0.1085           120           133           119           132
BM_MatrixMatrixMultiplyDynamic/8/2/6                   +0.0794         +0.0760           169           183           169           182
BM_MatrixMatrixMultiplyDynamic/8/2/8                   +0.0833         +0.0780           221           239           221           238
BM_MatrixMatrixMultiplyDynamic/8/2/10                  +0.0037         +0.0037           264           265           264           265
BM_MatrixMatrixMultiplyDynamic/8/2/12                  +0.0114         +0.0115           301           304           301           304
BM_MatrixMatrixMultiplyDynamic/8/2/15                  +0.0034         +0.0030           378           380           378           380
BM_MatrixMatrixMultiplyDynamic/8/4/2                   +0.0197         +0.0198            90            91            90            91
BM_MatrixMatrixMultiplyDynamic/8/4/4                   +0.0231         +0.0230           156           160           156           160
BM_MatrixMatrixMultiplyDynamic/8/4/6                   +0.0233         +0.0235           225           230           225           230
BM_MatrixMatrixMultiplyDynamic/8/4/8                   +0.0352         +0.0349           286           296           286           296
BM_MatrixMatrixMultiplyDynamic/8/4/10                  +0.0569         +0.0551           362           382           362           382
BM_MatrixMatrixMultiplyDynamic/8/4/12                  -0.0180         -0.0181           424           416           424           416
BM_MatrixMatrixMultiplyDynamic/8/4/15                  -0.0807         -0.0763           627           576           623           576
BM_MatrixMatrixMultiplyDynamic/8/6/2                   -0.0030         -0.0029           111           111           111           111
BM_MatrixMatrixMultiplyDynamic/8/6/4                   +0.0053         +0.0051           198           199           198           199
BM_MatrixMatrixMultiplyDynamic/8/6/6                   -0.1261         -0.1233           330           288           329           288
BM_MatrixMatrixMultiplyDynamic/8/6/8                   -0.0760         -0.0755           398           368           398           368
BM_MatrixMatrixMultiplyDynamic/8/6/10                  -0.0497         -0.0487           505           480           505           480
BM_MatrixMatrixMultiplyDynamic/8/6/12                  +0.0090         +0.0091           529           534           529           534
BM_MatrixMatrixMultiplyDynamic/8/6/15                  -0.0778         -0.0757           704           649           702           649
BM_MatrixMatrixMultiplyDynamic/8/8/2                   -0.1332         -0.1305           150           130           149           130
BM_MatrixMatrixMultiplyDynamic/8/8/4                   -0.0903         -0.0878           257           234           257           234
BM_MatrixMatrixMultiplyDynamic/8/8/6                   -0.1177         -0.1165           380           335           379           335
BM_MatrixMatrixMultiplyDynamic/8/8/8                   -0.0799         -0.0786           509           468           508           468
BM_MatrixMatrixMultiplyDynamic/8/8/10                  -0.1098         -0.1057           604           538           601           537
BM_MatrixMatrixMultiplyDynamic/8/8/12                  -0.0676         -0.0662           697           650           696           650
BM_MatrixMatrixMultiplyDynamic/8/8/15                  -0.0707         -0.0696           856           796           855           796
BM_MatrixMatrixMultiplyDynamic/8/10/2                  -0.0429         -0.0417           149           142           149           142
BM_MatrixMatrixMultiplyDynamic/8/10/4                  -0.0652         -0.0640           286           267           286           267
BM_MatrixMatrixMultiplyDynamic/8/10/6                  -0.0259         -0.0253           402           392           402           392
BM_MatrixMatrixMultiplyDynamic/8/10/8                  -0.0131         -0.0129           526           520           526           519
BM_MatrixMatrixMultiplyDynamic/8/10/10                 -0.0873         -0.0865           697           636           696           636
BM_MatrixMatrixMultiplyDynamic/8/10/12                 -0.0130         -0.0127           799           788           798           788
BM_MatrixMatrixMultiplyDynamic/8/10/15                 -0.0441         -0.0438          1018           973          1018           973
BM_MatrixMatrixMultiplyDynamic/8/12/2                  -0.0384         -0.0379           172           166           172           165
BM_MatrixMatrixMultiplyDynamic/8/12/4                  -0.0321         -0.0307           307           297           307           297
BM_MatrixMatrixMultiplyDynamic/8/12/6                  -0.0394         -0.0380           458           440           458           440
BM_MatrixMatrixMultiplyDynamic/8/12/8                  -0.0529         -0.0522           608           576           607           576
BM_MatrixMatrixMultiplyDynamic/8/12/10                 -0.0566         -0.0560           747           705           747           705
BM_MatrixMatrixMultiplyDynamic/8/12/12                 -0.0007         -0.0006          1024          1024          1024          1023
BM_MatrixMatrixMultiplyDynamic/8/12/15                 -0.0422         -0.0420          1163          1114          1162          1113
BM_MatrixMatrixMultiplyDynamic/8/15/2                  -0.0241         -0.0241           197           192           197           192
BM_MatrixMatrixMultiplyDynamic/8/15/4                  -0.0515         -0.0514           352           334           352           333
BM_MatrixMatrixMultiplyDynamic/8/15/6                  -0.0192         -0.0194           506           496           506           496
BM_MatrixMatrixMultiplyDynamic/8/15/8                  -0.0338         -0.0334           674           651           674           651
BM_MatrixMatrixMultiplyDynamic/8/15/10                 -0.0556         -0.0545           922           871           921           871
BM_MatrixMatrixMultiplyDynamic/8/15/12                 -0.0473         -0.0462          1052          1002          1050          1001
BM_MatrixMatrixMultiplyDynamic/8/15/15                 -0.0522         -0.0521          1484          1406          1483          1406
BM_MatrixTransposeMatrixMultiplyDynamic/2/2/2          -0.1216         -0.1203            31            27            31            27
BM_MatrixTransposeMatrixMultiplyDynamic/2/2/4          -0.3827         -0.3818            49            30            49            30
BM_MatrixTransposeMatrixMultiplyDynamic/2/2/6          -0.3901         -0.3888            67            41            67            41
BM_MatrixTransposeMatrixMultiplyDynamic/2/2/8          -0.5469         -0.5458            86            39            86            39
BM_MatrixTransposeMatrixMultiplyDynamic/2/4/2          -0.2362         -0.2365            47            36            47            36
BM_MatrixTransposeMatrixMultiplyDynamic/2/4/4          -0.4470         -0.4469            77            43            77            43
BM_MatrixTransposeMatrixMultiplyDynamic/2/4/6          -0.4545         -0.4546           111            61           111            61
BM_MatrixTransposeMatrixMultiplyDynamic/2/4/8          -0.6093         -0.6093           142            56           142            56
BM_MatrixTransposeMatrixMultiplyDynamic/2/5/2          -0.2345         -0.2348            54            41            54            41
BM_MatrixTransposeMatrixMultiplyDynamic/2/5/4          -0.5111         -0.5107            99            48            99            48
BM_MatrixTransposeMatrixMultiplyDynamic/2/5/6          -0.4944         -0.4946           136            69           136            69
BM_MatrixTransposeMatrixMultiplyDynamic/2/5/8          -0.6354         -0.6354           171            62           171            62
BM_MatrixTransposeMatrixMultiplyDynamic/2/8/2          -0.3370         -0.3369            82            55            82            55
BM_MatrixTransposeMatrixMultiplyDynamic/2/8/4          -0.5062         -0.5064           139            69           139            69
BM_MatrixTransposeMatrixMultiplyDynamic/2/8/6          -0.5422         -0.5421           208            95           208            95
BM_MatrixTransposeMatrixMultiplyDynamic/2/8/8          -0.6903         -0.6896           294            91           294            91
BM_MatrixTransposeMatrixMultiplyDynamic/2/10/2         -0.1791         -0.1811            99            82            99            81
BM_MatrixTransposeMatrixMultiplyDynamic/2/10/4         -0.5062         -0.5061           177            88           177            88
BM_MatrixTransposeMatrixMultiplyDynamic/2/10/6         -0.5110         -0.5110           256           125           256           125
BM_MatrixTransposeMatrixMultiplyDynamic/2/10/8         -0.6632         -0.6632           334           112           333           112
BM_MatrixTransposeMatrixMultiplyDynamic/2/12/2         -0.3272         -0.3269           120            81           120            81
BM_MatrixTransposeMatrixMultiplyDynamic/2/12/4         -0.5019         -0.5019           212           105           212           105
BM_MatrixTransposeMatrixMultiplyDynamic/2/12/6         -0.5365         -0.5365           303           140           303           140
BM_MatrixTransposeMatrixMultiplyDynamic/2/12/8         -0.6856         -0.6856           398           125           398           125
BM_MatrixTransposeMatrixMultiplyDynamic/2/15/2         -0.2425         -0.2425           143           109           143           109
BM_MatrixTransposeMatrixMultiplyDynamic/2/15/4         -0.5891         -0.5871           298           122           296           122
BM_MatrixTransposeMatrixMultiplyDynamic/2/15/6         -0.5790         -0.5782           414           174           413           174
BM_MatrixTransposeMatrixMultiplyDynamic/2/15/8         -0.7173         -0.7173           509           144           509           144
BM_MatrixTransposeMatrixMultiplyDynamic/4/2/2          +0.0482         +0.0489            37            39            37            39
BM_MatrixTransposeMatrixMultiplyDynamic/4/2/4          -0.2428         -0.2433            60            45            60            45
BM_MatrixTransposeMatrixMultiplyDynamic/4/2/6          -0.2921         -0.2917            84            59            84            59
BM_MatrixTransposeMatrixMultiplyDynamic/4/2/8          -0.4632         -0.4630           105            56           105            56
BM_MatrixTransposeMatrixMultiplyDynamic/4/4/2          -0.0305         -0.0301            60            58            60            58
BM_MatrixTransposeMatrixMultiplyDynamic/4/4/4          -0.3008         -0.3007           101            70           101            70
BM_MatrixTransposeMatrixMultiplyDynamic/4/4/6          -0.3708         -0.3700           149            94           149            94
BM_MatrixTransposeMatrixMultiplyDynamic/4/4/8          -0.5160         -0.5159           190            92           189            92
BM_MatrixTransposeMatrixMultiplyDynamic/4/5/2          -0.0187         -0.0185            71            70            71            70
BM_MatrixTransposeMatrixMultiplyDynamic/4/5/4          -0.3064         -0.3054           130            90           130            90
BM_MatrixTransposeMatrixMultiplyDynamic/4/5/6          -0.3762         -0.3753           184           115           184           115
BM_MatrixTransposeMatrixMultiplyDynamic/4/5/8          -0.5845         -0.5838           240           100           240           100
BM_MatrixTransposeMatrixMultiplyDynamic/4/8/2          +0.0517         +0.0521           109           115           109           115
BM_MatrixTransposeMatrixMultiplyDynamic/4/8/4          -0.2895         -0.2889           194           138           194           138
BM_MatrixTransposeMatrixMultiplyDynamic/4/8/6          -0.3138         -0.3136           279           191           279           191
BM_MatrixTransposeMatrixMultiplyDynamic/4/8/8          -0.5429         -0.5421           381           174           380           174
BM_MatrixTransposeMatrixMultiplyDynamic/4/10/2         +0.0612         +0.0620           135           143           135           143
BM_MatrixTransposeMatrixMultiplyDynamic/4/10/4         -0.3269         -0.3263           259           174           258           174
BM_MatrixTransposeMatrixMultiplyDynamic/4/10/6         -0.2955         -0.2961           343           242           343           241
BM_MatrixTransposeMatrixMultiplyDynamic/4/10/8         -0.5484         -0.5475           466           210           465           210
BM_MatrixTransposeMatrixMultiplyDynamic/4/12/2         +0.1234         +0.1239           157           177           157           177
BM_MatrixTransposeMatrixMultiplyDynamic/4/12/4         -0.3002         -0.2997           291           204           291           204
BM_MatrixTransposeMatrixMultiplyDynamic/4/12/6         -0.3419         -0.3415           415           273           415           273
BM_MatrixTransposeMatrixMultiplyDynamic/4/12/8         -0.5604         -0.5600           545           239           544           239
BM_MatrixTransposeMatrixMultiplyDynamic/4/15/2         +0.1730         +0.1712           185           217           185           216
BM_MatrixTransposeMatrixMultiplyDynamic/4/15/4         -0.3099         -0.3097           346           239           346           239
BM_MatrixTransposeMatrixMultiplyDynamic/4/15/6         -0.3743         -0.3741           521           326           521           326
BM_MatrixTransposeMatrixMultiplyDynamic/4/15/8         -0.5411         -0.5409           654           300           654           300
BM_MatrixTransposeMatrixMultiplyDynamic/6/2/2          +0.2546         +0.2547            41            51            41            51
BM_MatrixTransposeMatrixMultiplyDynamic/6/2/4          -0.0940         -0.0942            66            60            66            60
BM_MatrixTransposeMatrixMultiplyDynamic/6/2/6          -0.1584         -0.1585            95            80            95            80
BM_MatrixTransposeMatrixMultiplyDynamic/6/2/8          -0.4333         -0.4329           130            74           130            74
BM_MatrixTransposeMatrixMultiplyDynamic/6/4/2          +0.1951         +0.1952            69            82            69            82
BM_MatrixTransposeMatrixMultiplyDynamic/6/4/4          -0.2034         -0.2034           123            98           123            98
BM_MatrixTransposeMatrixMultiplyDynamic/6/4/6          -0.1998         -0.1995           178           142           178           142
BM_MatrixTransposeMatrixMultiplyDynamic/6/4/8          -0.4348         -0.4347           233           131           233           131
BM_MatrixTransposeMatrixMultiplyDynamic/6/5/2          +0.5517         +0.5521            82           128            82           128
BM_MatrixTransposeMatrixMultiplyDynamic/6/5/4          -0.1427         -0.1427           145           124           145           124
BM_MatrixTransposeMatrixMultiplyDynamic/6/5/6          -0.1846         -0.1846           220           179           220           179
BM_MatrixTransposeMatrixMultiplyDynamic/6/5/8          -0.4871         -0.4873           290           149           290           148
BM_MatrixTransposeMatrixMultiplyDynamic/6/8/2          +0.3469         +0.3473           131           176           131           176
BM_MatrixTransposeMatrixMultiplyDynamic/6/8/4          -0.1013         -0.1018           248           223           248           222
BM_MatrixTransposeMatrixMultiplyDynamic/6/8/6          -0.1652         -0.1670           354           295           353           294
BM_MatrixTransposeMatrixMultiplyDynamic/6/8/8          -0.4302         -0.4299           447           255           447           255
BM_MatrixTransposeMatrixMultiplyDynamic/6/10/2         +0.4005         +0.4001           157           219           157           219
BM_MatrixTransposeMatrixMultiplyDynamic/6/10/4         -0.0439         -0.0441           295           282           294           281
BM_MatrixTransposeMatrixMultiplyDynamic/6/10/6         -0.1031         -0.1074           420           377           420           375
BM_MatrixTransposeMatrixMultiplyDynamic/6/10/8         -0.3655         -0.3679           556           353           555           351
BM_MatrixTransposeMatrixMultiplyDynamic/6/12/2         +0.5654         +0.5604           183           287           183           286
BM_MatrixTransposeMatrixMultiplyDynamic/6/12/4         -0.1118         -0.1116           353           314           353           314
BM_MatrixTransposeMatrixMultiplyDynamic/6/12/6         -0.2045         -0.2053           517           411           516           410
BM_MatrixTransposeMatrixMultiplyDynamic/6/12/8         -0.4662         -0.4660           657           350           656           350
BM_MatrixTransposeMatrixMultiplyDynamic/6/15/2         +0.3582         +0.3588           242           328           241           328
BM_MatrixTransposeMatrixMultiplyDynamic/6/15/4         -0.1403         -0.1407           428           368           428           367
BM_MatrixTransposeMatrixMultiplyDynamic/6/15/6         -0.2424         -0.2421           632           479           632           479
BM_MatrixTransposeMatrixMultiplyDynamic/6/15/8         -0.5094         -0.5092           835           410           834           409
BM_MatrixTransposeMatrixMultiplyDynamic/8/2/2          +0.3930         +0.3925            47            66            47            66
BM_MatrixTransposeMatrixMultiplyDynamic/8/2/4          +0.0226         +0.0215            78            80            78            80
BM_MatrixTransposeMatrixMultiplyDynamic/8/2/6          -0.0428         -0.0427           105           100           105           100
BM_MatrixTransposeMatrixMultiplyDynamic/8/2/8          -0.3418         -0.3437           141            93           141            92
BM_MatrixTransposeMatrixMultiplyDynamic/8/4/2          +0.3927         +0.3924            85           118            85           118
BM_MatrixTransposeMatrixMultiplyDynamic/8/4/4          -0.0040         -0.0039           137           136           136           136
BM_MatrixTransposeMatrixMultiplyDynamic/8/4/6          -0.0342         -0.0339           204           197           204           197
BM_MatrixTransposeMatrixMultiplyDynamic/8/4/8          -0.3575         -0.3577           267           171           267           171
BM_MatrixTransposeMatrixMultiplyDynamic/8/5/2          +0.7014         +0.7033            99           168            99           168
BM_MatrixTransposeMatrixMultiplyDynamic/8/5/4          +0.0952         +0.0952           163           179           163           179
BM_MatrixTransposeMatrixMultiplyDynamic/8/5/6          -0.1164         -0.1163           246           218           246           218
BM_MatrixTransposeMatrixMultiplyDynamic/8/5/8          -0.3550         -0.3565           322           208           322           207
BM_MatrixTransposeMatrixMultiplyDynamic/8/8/2          +0.7074         +0.7072           140           239           140           239
BM_MatrixTransposeMatrixMultiplyDynamic/8/8/4          +0.1072         +0.1075           276           306           276           306
BM_MatrixTransposeMatrixMultiplyDynamic/8/8/6          -0.0771         -0.0768           398           368           398           367
BM_MatrixTransposeMatrixMultiplyDynamic/8/8/8          -0.3614         -0.3612           524           335           524           335
BM_MatrixTransposeMatrixMultiplyDynamic/8/10/2         +0.6979         +0.7004           184           313           184           312
BM_MatrixTransposeMatrixMultiplyDynamic/8/10/4         +0.0967         +0.0955           326           357           325           356
BM_MatrixTransposeMatrixMultiplyDynamic/8/10/6         -0.0248         -0.0239           486           474           485           474
BM_MatrixTransposeMatrixMultiplyDynamic/8/10/8         -0.3432         -0.3437           603           396           603           396
BM_MatrixTransposeMatrixMultiplyDynamic/8/12/2         +0.5977         +0.5985           210           335           210           335
BM_MatrixTransposeMatrixMultiplyDynamic/8/12/4         -0.0530         -0.0484           405           384           403           384
BM_MatrixTransposeMatrixMultiplyDynamic/8/12/6         -0.0557         -0.0561           574           542           574           541
BM_MatrixTransposeMatrixMultiplyDynamic/8/12/8         -0.2835         -0.2849           730           523           730           522
BM_MatrixTransposeMatrixMultiplyDynamic/8/15/2         +0.7117         +0.7085           254           434           254           433
BM_MatrixTransposeMatrixMultiplyDynamic/8/15/4         +0.0630         +0.0602           458           487           458           486
BM_MatrixTransposeMatrixMultiplyDynamic/8/15/6         -0.0321         -0.0330           662           641           662           640
BM_MatrixTransposeMatrixMultiplyDynamic/8/15/8         -0.3974         -0.3978           911           549           910           548

Change-Id: I09d87c1885be86177b93c8fe0e6f89a75eb2f7a1
2 files changed
tree: 95ace0366e255b3d9d115cbdc2295e0b46ef369e
  1. bazel/
  2. cmake/
  3. config/
  4. data/
  5. docs/
  6. examples/
  7. include/
  8. internal/
  9. jni/
  10. scripts/
  11. .gitignore
  12. BUILD
  13. CMakeLists.txt
  14. LICENSE
  15. package.xml
  16. README.md
  17. WORKSPACE
README.md

Ceres Solver

Ceres Solver is an open source C++ library for modeling and solving large, complicated optimization problems. It is a feature rich, mature and performant library which has been used in production at Google since 2010. Ceres Solver can solve two kinds of problems.

  1. Non-linear Least Squares problems with bounds constraints.
  2. General unconstrained optimization problems.

Please see ceres-solver.org for more information.

WARNING - Do not make GitHub pull requests!

Ceres development happens on Gerrit, including both repository hosting and code reviews. The GitHub Repository is a continuously updated mirror which is primarily meant for issue tracking. Please see our Contributing to Ceres Guide for more details.

The upstream Gerrit repository is

https://ceres-solver.googlesource.com/ceres-solver