📄 wztensorgrid.cxx
字号:
#include "wztensorgrid.hxx"wzFloat wzTensorGrid::epsilon = 1.e-7;wzTensorGrid::wzTensorGrid(wzIndex dim, wzFloat eps){ int i; for(i=0;i<wzPointDim;i++){ x[i].reinitialize(n[i]); r[i] = 0; } checked = 0;}void wzTensorGrid::check() const{ if(!checked){throw wzFailure();}}void wzTensorGrid::add(wzIndex i, wzFloat f){ int l; wzFloat t; if(checked){throw wzFailure();} if(f <= -wzInfty) return; if(f >= wzInfty) return; wzRangeLoop(n[i],l){ t=x[i][l]; if(t < f-epsilon) continue; if(t < f+epsilon) return; x[i][l] = f; f = t; } l = n[i].create(); x[i][l] = f;}void wzTensorGrid::getBox(wzFloat *min, wzFloat *max) const{ for(int i=0;i<wzPointDim;i++){ min[i] = x[i][n[i].first()]; max[i] = x[i][n[i].last()]; }}void wzTensorGrid::endInitialization(wzFloat *min, wzFloat *max){ int i; if(checked){throw wzFailure();} for(i=wzPointDim-1;i>=0;i--){ if(n[i].length()>1){ dim = i+1; break; } if(n[i].length()==0) add(i,min[i]); if(n[i].length()==0) add(i,max[i]); if(n[i].length()==0) add(i,0); } for(i=0;i<dim;i++){ if(n[i].length()==0){add(i,min[i]); add(i,max[i]);} if(n[i].length()==0){add(i,0); add(i,1);} if(n[i].length()==1){add(i,min[i]);} if(n[i].length()==1){add(i,max[i]);} if(n[i].length()==1){ if(min[i]>0) add(i,x[i][0]+1); else add(i,0); } if(n[i].length()==1){add(i,1);} } checked = 1;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -