📄 quad3d.h
字号:
struct NRf3 {
Doub xsav,ysav;
Doub (*func3d)(const Doub, const Doub, const Doub);
Doub operator()(const Doub z)
{
return func3d(xsav,ysav,z);
}
};
struct NRf2 {
NRf3 f3;
Doub (*z1)(Doub, Doub);
Doub (*z2)(Doub, Doub);
NRf2(Doub zz1(Doub, Doub), Doub zz2(Doub, Doub)) : z1(zz1), z2(zz2) {}
Doub operator()(const Doub y)
{
f3.ysav=y;
return qgaus(f3,z1(f3.xsav,y),z2(f3.xsav,y));
}
};
struct NRf1 {
Doub (*y1)(Doub);
Doub (*y2)(Doub);
NRf2 f2;
NRf1(Doub yy1(Doub), Doub yy2(Doub), Doub z1(Doub, Doub),
Doub z2(Doub, Doub)) : y1(yy1),y2(yy2), f2(z1,z2) {}
Doub operator()(const Doub x)
{
f2.f3.xsav=x;
return qgaus(f2,y1(x),y2(x));
}
};
template <class T>
Doub quad3d(T &func, const Doub x1, const Doub x2, Doub y1(Doub), Doub y2(Doub),
Doub z1(Doub, Doub), Doub z2(Doub, Doub))
{
NRf1 f1(y1,y2,z1,z2);
f1.f2.f3.func3d=func;
return qgaus(f1,x1,x2);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -