小编dod*_*dol的帖子

将自定义顶点添加到增强图

如果我有使用类CElement定义的n个元素,那么如何使用boost图创建这些元素的顶点 - 并将它们连接起来?我见过提升图捆绑道具,但我无法想象这一个.

boost graph

19
推荐指数
2
解决办法
1万
查看次数

ublas与矩阵模板库(MTL4)

我正在编写一个用于c ++的双曲偏微分方程的软件.几乎所有符号都是矢量和矩阵符号.最重要的是,我需要线性代数求解器.是的,矢量和矩阵的大小可以有很大差异(从1000到大小只能通过分布式存储器计算来解决,例如集群或类似的架构).如果我曾经生活在乌托邦,那么我就已经拥有线性求解器,可以很好地适应集群,GPU和多核.

在考虑应该代表变量的数据结构时,我来了accros the boost.ublas和MTL4.两个库都是blas 3级兼容,MTL4实现稀疏求解器并且比ublas快得多.它们都没有实现对多核处理器的支持,更不用说分布式内存计算的并行化了.另一方面,MTL4的开发取决于2个开发人员的唯一努力(至少我理解),并且我确信ublas有一个原因在于升级库.此外,intel的mkl库包含了用ublas绑定其结构的示例.我想将我的数据和软件绑定到数据结构中,该数据结构将坚固,开发和维护很长一段时间.

最后,问题.您对使用ublas和/或mtl4的体验如何,您会推荐什么?

thanx,mayydodol

c++ math linear-algebra

14
推荐指数
3
解决办法
1万
查看次数

boost序列化std :: unique_ptr支持

boost序列化库是否支持std :: unique_ptr的序列化?我试着编译下面的代码,但如果我包含 boost :: archive :: text_oarchive oa(ofs); oa << g; 线,

编译器(btw gcc4.7与-std = c ++ 11标志)抛出错误

/usr/include/boost/serialization/access.hpp:118:9:错误:'class std :: unique_ptr'没有名为'serialize'的成员

#include <iostream>
#include <memory>
#include <fstream>
#include <boost/archive/text_oarchive.hpp>
#include <boost/archive/text_iarchive.hpp>
class MyDegrees
{
public:
  void setDeg(int d){deg = d;}
  int getDeg()const {return deg;}
private:
  friend class boost::serialization::access;
    template<class Archive>
    void serialize(Archive & ar, const unsigned int version)
    { ar & deg; }
  int deg;
};
class gps_position
{
private:
    friend class boost::serialization::access;
    template<class Archive>
    void serialize(Archive & …
Run Code Online (Sandbox Code Playgroud)

c++ boost boost-serialization c++11

9
推荐指数
5
解决办法
2768
查看次数

opencv和matlab的bicubic算法有什么区别?

使用opencv时调整大小

img = cv2.imread('fname.png', 0 )
res = cv2.resize(img,None,fx=2, fy=2, interpolation = cv2.INTER_CUBIC)
cv2.imwrite('scaled_cv2.png',res)
Run Code Online (Sandbox Code Playgroud)

和matlab的imresize

I = imread('fname.png');
J = imresize(I,2, 'Antialiasing', false, 'Method', 'bicubic');
imwrite(J,'scaled_matlab.png')
Run Code Online (Sandbox Code Playgroud)

并与imagemagick的比较

compare -metric PSNR fname.png scaled_cv2.png diff_cv2.png
compare -metric PSNR fname.png scaled_matlab.png diff_matlab.png
Run Code Online (Sandbox Code Playgroud)

我得到完全不同的PSNR值它们有什么不同?

matlab opencv image-processing image-resizing

5
推荐指数
1
解决办法
2572
查看次数

使用右值参考和自动

鉴于下面的代码,一切正常.为什么变量d引用int?到底是怎么回事?

int main()
{
    int a= 10;
    int &&b = a+10; // b is int &&
    auto c =b+10; // c is int
    auto &&d = a; // d is int&
    //int &&di = a; // error, as expected
    return (0);
}
Run Code Online (Sandbox Code Playgroud)

c++ c++11

4
推荐指数
2
解决办法
2942
查看次数

提升std unique_ptrs的stl集合的序列化

我希望能够序列化std :: unique_ptrs的stl容器.可以吗?顺便说一下,单个std :: unique_ptr一切正常.下面是我正在处理的代码,gcc给出了以下错误:

 use of deleted function ‘std::unique_ptr<_Tp, _Dp>::unique_ptr(const
 std::unique_ptr<_Tp, _Dp>&) [with _Tp = MyDegrees; _Dp =
 std::default_delete<MyDegrees>; std::unique_ptr<_Tp, _Dp> =
 std::unique_ptr<MyDegrees>]’
Run Code Online (Sandbox Code Playgroud)

如何使代码工作?

#include <iostream>
#include <memory>
#include <fstream>
#include <map>
#include <vector>
#include <boost/serialization/map.hpp>
#include <boost/serialization/vector.hpp>
#include <boost/archive/text_oarchive.hpp>
#include <boost/archive/text_iarchive.hpp>
#include <boost/archive/xml_oarchive.hpp>
#include <boost/archive/xml_iarchive.hpp>
namespace boost {
namespace serialization {

template<class Archive, class T>
inline void save(
    Archive & ar,
    const std::unique_ptr< T > &t,
    const unsigned int file_version
) {
    // only the raw pointer has …
Run Code Online (Sandbox Code Playgroud)

c++ boost boost-serialization c++11

4
推荐指数
1
解决办法
1813
查看次数

VTK删除()和数据删除

我正在浏览VTK 5.4.2代码,似乎无法理解Delete()函数是如何工作的.我的意思是,Delete()函数在vtkObjectBase中并且是虚拟的,但是,通过什么命令链是vtkDoubleArray类(例如)执行的析构函数?

最好的祝福,

mightydodol

c++ vtk

3
推荐指数
2
解决办法
1552
查看次数

提升对受保护数据的序列化访问

当我尝试使用受保护的成员序列化类时,我收到以下错误:"无法访问类NetElement中声明的受保护成员".我的想法是,我希望在类定义之外有一个序列化函数.我究竟做错了什么?

最好的问候,mayydodol


这是代码......

// class definition
class NetElement
{
    friend class boost::serialization::access;
protected:
    int nelements;
    int ids;
public:
    static NetElement* New(){return new NetElement;}
    virtual void Delete(){delete this;}
protected:
    NetElement(){};
    ~NetElement(){};
};
// nonintrusive serialize 
template<class Archive>
void serialize(Archive & ar, NetElement& element, const unsigned int version=1)
{
    ar & element.nelements & element.ids;
}

int main(void)
{...
    std::ofstream os("Pipe1.txt");
    boost::archive::text_oarchive oa(os);
    serialize(oa,el/*ref to NetElementObj*/);
 ...
}
Run Code Online (Sandbox Code Playgroud)

c++ boost-serialization

2
推荐指数
1
解决办法
1594
查看次数