小编use*_*460的帖子

C++中非常快速的近似Logarithm(自然日志)函数?

我们发现要替换的各种技巧std::sqrt(Timing Square Root)和一些std::exp(使用更快的指数近似),但我找不到任何可替代的东西std::log.

它是我程序中循环的一部分,它被多次调用,而exp和sqrt被优化,英特尔VTune现在建议我进行优化std::log,之后似乎只有我的设计选择才会受到限制.

现在我使用的第三阶泰勒近似ln(1+x)x之间-0.5+0.5(对于4%最大误差的情况下的%90)和回退到std::log否则.这让我加速了15%.

c++ math logarithm micro-optimization sqrt

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

如何管理不同类中原始指针和unique_ptr的混合使用?(例外?)

我有一个存储有对象的容器unique_ptr,为简单起见,我只有一个对象:

class Container { std::unique_ptr<A> ptrA; }
Run Code Online (Sandbox Code Playgroud)

我也有使用该对象的类。这些类在构造这些对象时使用原始指针:

class B { A* a;
B(*A param) : a(param) }
Run Code Online (Sandbox Code Playgroud)

它们是通过以下方式创建的: B b = B(Container.ptrA.get() );

该Container类应该比class B。但是,我希望在我的类Container中出现问题或错误并且unique_ptr超出范围并被删除时,我的整个程序不会崩溃。

我的问题是有关管理1%情况的设计,以便我的程序可以尝试重新加载数据并避免突然崩溃,您是否会使用异常?如果是这样,您将在哪里尝试/抓住?

谢谢 !

c++ exception class unique-ptr

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

标签 统计

c++ ×2

class ×1

exception ×1

logarithm ×1

math ×1

micro-optimization ×1

sqrt ×1

unique-ptr ×1