资源简介
本资源来自于eigen官方网站下载,可以用于矩阵运算,本人在自己的软件工程中,应用成功。

代码片段和文件信息
// This file is part of Eigen a lightweight C++ template library
// for linear algebra.
//
// Copyright (C) 2015 Benoit Jacob
//
// This Source Code Form is subject to the terms of the Mozilla
// Public License v. 2.0. If a copy of the MPL was not distributed
// with this file You can obtain one at http://mozilla.org/MPL/2.0/.
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
const int default_precision = 4;
// see --only-cubic-sizes
bool only_cubic_sizes = false;
// see --dump-tables
bool dump_tables = false;
uint8_t log2_pot(size_t x) {
size_t l = 0;
while (x >>= 1) l++;
return l;
}
uint16_t compact_size_triple(size_t k size_t m size_t n)
{
return (log2_pot(k) << 8) | (log2_pot(m) << 4) | log2_pot(n);
}
// just a helper to store a triple of KMN sizes for matrix product
struct size_triple_t
{
uint16_t k m n;
size_triple_t() : k(0) m(0) n(0) {}
size_triple_t(size_t _k size_t _m size_t _n) : k(_k) m(_m) n(_n) {}
size_triple_t(const size_triple_t& o) : k(o.k) m(o.m) n(o.n) {}
size_triple_t(uint16_t compact)
{
k = 1 << ((compact & 0xf00) >> 8);
m = 1 << ((compact & 0x0f0) >> 4);
n = 1 << ((compact & 0x00f) >> 0);
}
bool is_cubic() const { return k == m && m == n; }
};
ostream& operator<<(ostream& s const size_triple_t& t)
{
return s << “(“ << t.k << “ “ << t.m << “ “ << t.n << “)“;
}
struct inputfile_entry_t
{
uint16_t product_size;
uint16_t pot_block_size;
size_triple_t nonpot_block_size;
float gflops;
};
struct inputfile_t
{
enum class type_t {
unknown
all_pot_sizes
default_sizes
};
string filename;
vector entries;
type_t type;
inputfile_t(const string& fname)
: filename(fname)
type(type_t::unknown)
{
ifstream stream(filename);
if (!stream.is_open()) {
cerr << “couldn‘t open input file: “ << filename << endl;
exit(1);
}
string line;
while (getline(stream line)) {
if (line.empty()) continue;
if (line.find(“BEGIN MEASUREMENTS ALL POT SIZES“) == 0) {
if (type != type_t::unknown) {
cerr << “Input file “ << filename << “ contains redundant BEGIN MEASUREMENTS lines“;
exit(1);
}
type = type_t::all_pot_sizes;
continue;
}
if (line.find(“BEGIN MEASUREMENTS DEFAULT SIZES“) == 0) {
if (type != type_t::unknown) {
cerr << “Input file “ << filename << “ contains redundant BEGIN MEASUREMENTS lines“;
exit(1);
}
type = type_t::default_sizes;
continue;
}
if (type == type_t::unknown) {
continue;
}
switch(type) {
case type_t::all_pot_sizes: {
unsigned int product_size block_size;
float gf
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2019-07-03 10:22 eigen库\eigen\
文件 117 2018-12-12 01:57 eigen库\eigen\.hg_archival.txt
文件 180 2018-12-12 01:57 eigen库\eigen\.hgeol
文件 244 2018-12-12 01:57 eigen库\eigen\.hgignore
文件 1844 2018-12-12 01:57 eigen库\eigen\.hgtags
目录 0 2019-07-03 10:22 eigen库\eigen\bench\
文件 28983 2018-12-12 01:57 eigen库\eigen\bench\analyze-blocking-sizes.cpp
文件 1421 2018-12-12 01:57 eigen库\eigen\bench\basicbench.cxxlist
文件 1107 2018-12-12 01:57 eigen库\eigen\bench\basicbenchmark.cpp
文件 1669 2018-12-12 01:57 eigen库\eigen\bench\basicbenchmark.h
文件 10821 2018-12-12 01:57 eigen库\eigen\bench\bench_gemm.cpp
文件 618 2018-12-12 01:57 eigen库\eigen\bench\bench_multi_compilers.sh
文件 11652 2018-12-12 01:57 eigen库\eigen\bench\bench_norm.cpp
文件 2159 2018-12-12 01:57 eigen库\eigen\bench\bench_reverse.cpp
文件 320 2018-12-12 01:57 eigen库\eigen\bench\bench_sum.cpp
文件 651 2018-12-12 01:57 eigen库\eigen\bench\bench_unrolling
文件 6313 2018-12-12 01:57 eigen库\eigen\bench\benchBlasGemm.cpp
文件 3534 2018-12-12 01:57 eigen库\eigen\bench\benchCholesky.cpp
文件 5788 2018-12-12 01:57 eigen库\eigen\bench\benchEigenSolver.cpp
文件 2806 2018-12-12 01:57 eigen库\eigen\bench\benchFFT.cpp
文件 3598 2018-12-12 01:57 eigen库\eigen\bench\benchGeometry.cpp
文件 790 2018-12-12 01:57 eigen库\eigen\bench\benchmark.cpp
文件 1209 2018-12-12 01:57 eigen库\eigen\bench\benchmark_suite
文件 22259 2018-12-12 01:57 eigen库\eigen\bench\benchmark-blocking-sizes.cpp
文件 835 2018-12-12 01:57 eigen库\eigen\bench\benchmarkSlice.cpp
文件 640 2018-12-12 01:57 eigen库\eigen\bench\benchmarkX.cpp
文件 605 2018-12-12 01:57 eigen库\eigen\bench\benchmarkXcwise.cpp
文件 3932 2018-12-12 01:57 eigen库\eigen\bench\BenchSparseUtil.h
文件 4392 2018-12-12 01:57 eigen库\eigen\bench\BenchTimer.h
文件 2529 2018-12-12 01:57 eigen库\eigen\bench\BenchUtil.h
文件 5193 2018-12-12 01:57 eigen库\eigen\bench\benchVecAdd.cpp
............此处省略1706个文件信息
相关资源
- VisualStudioUninstaller vs卸载工具
- 组态王驱动开发包3.0.0.7(中文)
- 多窗口后台鼠标连点器
- 使用选择性重传协议实现UDP可靠通信
- VC 获得文件属性 获取文件的创建时
- 读者写者问题(读者优先,写者优先
- 用VC 编写的仿QQ聊天室程序源代码
- 外点法程序
- 外罚函数程序
- qt-电子点菜系统
- 推箱子及人工智能寻路C 源代码
- 自己写的航空订票系统c 版--数据结构
- 数据结构实验魔王语言
- MUSIC算法c 实现
- C 餐厅叫号系统(QT平)
- 国际象棋c 完整版
-
ob
jectARX给Auto CAD加工具条 - 画图程序MFC/VC/VC CRectTracker 串行化
- MFC网络编程实例
- c 课程设计 职工信息管理系统
- VC 游戏编程—附源代码
- IpHlpApi.h&IpHlpApi.lib
- 清华大学 c 郑莉 ppt课件
- c 程序判断离散数学中命题公式
- 多项式求和(数据结构C 版)
- vc 6.0开发的流程图编辑器
- VC 天空盒(skyBox)实现(附源代码)
- c MFC 画多边形
- 用C 实现的对网络上的ARP数据包进行
- Microsoft基本类库 (MFC)(C 库)
评论
共有 条评论