我知道有很多地方可以问这个问题,但我想我会在这里试试.我已经看起来已经从Maxima的好人那里得到了尽可能多的帮助.
我用SBCL运行Maxima并且一直出错;
INFO: Binding stack guard page unprotected
Binding stack guard page temporarily disabled: proceed with caution
Maxima encountered a Lisp error:
Binding stack exhausted.
PROCEED WITH CAUTION.
Automatically continuing.
To enable the Lisp debugger set *debugger-hook* to nil.
INFO: Binding stack guard page reprotected
Run Code Online (Sandbox Code Playgroud)
我已经通过为动态空间大小和控制堆栈大小添加更大的值来修改对Maxima(其可执行文件)的调用,并且我已经查看了./.../sbcl-help以获取要添加到$的参数的任何想法maxima可执行文件中的MAXIMA_LISP_OPTIONS.
另外,我通常在运行它之前做这些(虽然我认为它们是不必要的,因为操作系统很聪明,也许最后一个需要摆弄);
sudo fstrim -v /
echo 3 | sudo tee /proc/sys/vm/drop_caches
echo 262144 | sudo tee /proc/sys/vm/max_map_count
Run Code Online (Sandbox Code Playgroud)
在完成Maxima工作的几次计算之后,我投入了几个
:lisp (sb-ext:gc :full t)
Run Code Online (Sandbox Code Playgroud)
希望避免这个错误.我不太了解lisp,当然也不了解垃圾收集的所有内容.
虽然我在Maxima工作中使用了memoization,但我的计算有点密集和递归.我的电脑用 …
我知道我应该在类中包含一个"get_Diameter()"函数,以便访问私有数据成员,但我无法弄清楚真正的小数字来自何处.
(可以忽略Rectangle的东西 - 它是一个圆形问题)
这是驱动程序代码:
// classes example
#include <iostream>
using namespace std;
#include "rect2.h"
#include "roughCirc.h"
int main () {
Rectangle rect (3,4);
Rectangle rectb;
cout << "rect area: " << rect.area() << endl;
cout << "rectb area: " << rectb.area() << endl;
cout << " " << endl;
Circle circ (1.3);
cout << "circle area: " << circ.area() << endl;
Circle circB;
cout << "circle area: " << circB.area() << endl;
return 0;
}
/*
g++ -o main2 …Run Code Online (Sandbox Code Playgroud)