小编Cry*_*ckx的帖子

std :: function有性能问题,如何避免呢?

我有一些类允许复合协方差函数(也称为内核参见https://stats.stackexchange.com/questions/228552/covariance-functions-or-kernels-what-exactly-are-they),然后计算给出的协方差以新内核为例:

auto C = GaussianKernel(50,60) + GaussianKernel(100,200);
auto result = C.covarianceFunction(30.0,40.0);
Run Code Online (Sandbox Code Playgroud)

但问题是,std::function当我想计算协方差时,我会调用,是否有一种简单的方法可以避免它?
请注意,我想计算一个大的协方差矩阵(大约50K*50K),这意味着性能很重要.

这是代码

class Kernel {
public: 
    /*
    Covariance function : return the covariance between two R.V. for the entire kernel's domain definition. 
    */
    virtual double covarianceFunction(
        double   X,
        double   Y
    )const = 0 ;
    ~Kernel() = default;
};

class FooKernel : public Kernel {
public:
    FooKernel(std::function<double(double, double)> fun) : fun_(fun) {}
    double covarianceFunction(
        double   X,
        double   Y
    ) const {
        return …
Run Code Online (Sandbox Code Playgroud)

c++ statistics performance machine-learning c++17

7
推荐指数
1
解决办法
714
查看次数

如何使用plotly.graph_objects绘制3D线?

我想在 3D 图中的两点之间画一条线。但是,由于文档中建议的某些原因,我无法使用plotly.express。https://plotly.com/python/3d-line-plots/

是否可以使用plotly.graph_objects模块在3D图中画一条线?如果是这样,怎么办?

plot plotly

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

如何将派生对象传递给C++中的类?

我想我误解了C++继承的东西.

假设我有这种经典继承:

    class A{
    public: 
        virtual void method1() =0;
        virtual ~A() = default;
    }

    class B : public A{
    public :
        void method1(){doSomething();}
    }

    class C : public A{
    public :
        void method1(){doSomethingElse();}
    }
Run Code Online (Sandbox Code Playgroud)

如何让其他Q类拥有B或C类型的对象,而不事先知道它是哪种类型?(我的意思是我们知道它是A型)

谢谢阅读 !

c++ polymorphism inheritance

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