我目前正在寻找一个非常快的整数平方根近似值,其中 floor(sqrt(x)) <= veryFastIntegerSquareRoot(x) <= x
平方根例程用于计算素数,如果仅sqrt(x)检查小于或等于 的值是否为 的除数,则计算速度会快得多x。
我目前拥有的是来自 Wikipedia 的这个函数,稍微调整了一下以使用 64 位整数。
因为我没有其他函数可以比较(或者更准确地说,该函数对于我的目的来说太精确了,而且它可能需要更多的时间,而不是高于实际结果。)
我有以下代码:
namespace rm {
namespace lib {
class Object {
public:
Object() {printf("Hi\n");}
};
}
}
Run Code Online (Sandbox Code Playgroud)
现在我想用g++ -Wall -Wno-unused -Werror -fPIC -g -Iinclude/ -c -O0 -o object.o object.cpp和编译一个共享库g++ --shared -o librm.so object.o.编译工作没有问题,但在检查结果库后nm librm.so | c++filt,rm::lib::Object::Object()无处可寻.即使启用-Wextra,GCC也不会发出警告.
G ++版本是(Raspbian 4.9.2-10)4.9.2
我有运算符重载的问题.我有一个名为的类Point1,定义为
class Point1 {
private:
long double x;
public:
Point1(): x(0) {}
Point1(long double val): x(val) {}
Point1(Point1 & val): x(val.x) {}
//Some functions omitted
friend ofstream& operator<< (ofstream&, const Point1&);
friend ifstream& operator>> (ifstream&, Point1&);
};
Run Code Online (Sandbox Code Playgroud)
这个类正在工作,为其执行operator>>(ifstream&, Point1&);,其功能主体是:
double tmp;
in >> tmp; //In this line g++ breaks with an error
pnt.x=tmp;
return in;
Run Code Online (Sandbox Code Playgroud)
我在debian测试中使用gcc 4.9.3(armv7l).完整的源代码可以在这里找到:http://hastebin.com/igunaquxiw.cpp