eigen库.zip


本资源来自于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库eigenench
     文件       28983  2018-12-12 01:57  eigen库eigenenchanalyze-blocking-sizes.cpp
     文件        1421  2018-12-12 01:57  eigen库eigenenchasicbench.cxxlist
     文件        1107  2018-12-12 01:57  eigen库eigenenchasicbenchmark.cpp
     文件        1669  2018-12-12 01:57  eigen库eigenenchasicbenchmark.h
     文件       10821  2018-12-12 01:57  eigen库eigenenchench_gemm.cpp
     文件         618  2018-12-12 01:57  eigen库eigenenchench_multi_compilers.sh
     文件       11652  2018-12-12 01:57  eigen库eigenenchench_norm.cpp
     文件        2159  2018-12-12 01:57  eigen库eigenenchench_reverse.cpp
     文件         320  2018-12-12 01:57  eigen库eigenenchench_sum.cpp
     文件         651  2018-12-12 01:57  eigen库eigenenchench_unrolling
     文件        6313  2018-12-12 01:57  eigen库eigenenchenchBlasGemm.cpp
     文件        3534  2018-12-12 01:57  eigen库eigenenchenchCholesky.cpp
     文件        5788  2018-12-12 01:57  eigen库eigenenchenchEigenSolver.cpp
     文件        2806  2018-12-12 01:57  eigen库eigenenchenchFFT.cpp
     文件        3598  2018-12-12 01:57  eigen库eigenenchenchGeometry.cpp
     文件         790  2018-12-12 01:57  eigen库eigenenchenchmark.cpp
     文件        1209  2018-12-12 01:57  eigen库eigenenchenchmark_suite
     文件       22259  2018-12-12 01:57  eigen库eigenenchenchmark-blocking-sizes.cpp
     文件         835  2018-12-12 01:57  eigen库eigenenchenchmarkSlice.cpp
     文件         640  2018-12-12 01:57  eigen库eigenenchenchmarkX.cpp
     文件         605  2018-12-12 01:57  eigen库eigenenchenchmarkXcwise.cpp
     文件        3932  2018-12-12 01:57  eigen库eigenenchBenchSparseUtil.h
     文件        4392  2018-12-12 01:57  eigen库eigenenchBenchTimer.h
     文件        2529  2018-12-12 01:57  eigen库eigenenchBenchUtil.h
     文件        5193  2018-12-12 01:57  eigen库eigenenchenchVecAdd.cpp
............此处省略1706个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)