资源简介
本资源来自于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个文件信息
相关资源
- 精简版黑白棋demo-Qt
- 文本文件字符串的检索和计数KMP算法
- Visual Studio中使用开源二维码QR库libq
- VC++开发的仓库管理系统设计文档和
- dianyajiance.rar
- 华为边缘计算核心板开发帮助手册
- 基于QT的网络视频直播软件
- libcurl+图灵机器人api编写的只能聊天系
- Qt版塔防游戏
- 黑马程序员-Qt讲义.pdf
- STL源码剖析.pdf(侯捷,完整版,已加
- 自己编写的E00读写程序
- 搜索网络中的打印机
- 敏感词统计与过滤系统
- 一个复杂的电梯调度程序
- ofdEditor.zip
- 虚拟磁盘系统完整项目
- 基于颜色识别的火焰检测算法的open
- GNSS-SDR_manual.pdf (v0.0.9)
- Qt GUI 界面通用系统模板 源码
- 英雄联盟10.26最新走A
- 基于QT的捕鱼达人小游戏
- 两个吃一个棋类游戏
- opencv3.4.3 mingw32编译
- 路灯控制系统开源
- qt-vsaddin-msvc2017-2.2.2.vsix
- NOIP2019提高组突破营课件.rar
- zigbee的无线通信
- 云盘项目开发全部内容包括源码解析
- 计算机算法设计与分析 第4版 (王晓
评论
共有 条评论