예제 #1
0
template <class F> inline void setvalue(NumTns<F>& T, F val)
{
  for(int i=0; i<T.m(); i++)
	 for(int j=0; j<T.n(); j++)
		for(int k=0; k<T.p(); k++)
		  T(i,j,k) = val;
}
예제 #2
0
파일: numtns.hpp 프로젝트: aashays/fmm-g
template <class F> inline void setvalue(NumTns<F>& M, F val)
{
  for(int i=0; i<M.m(); i++)
	 for(int j=0; j<M.n(); j++)
		for(int k=0; k<M.p(); k++)
		  M(i,j,k) = val;
  return;
}
예제 #3
0
template <class T> inline void cpp2mex(const NumTns<T>& cd, mxArray*& md)
{
  int m = cd.m();
  int n = cd.n();
  int p = cd.p();
  int dims[3];  dims[0] = m;  dims[1] = n;  dims[2] = p;
  md = mxCreateCellArray(3,dims);
  int cnt = 0;
  for(int k=0; k<p; k++)
	 for(int j=0; j<n; j++)
		for(int i=0; i<m; i++) {
		  mxArray* ss;		cpp2mex(cd(i,j,k), ss);		mxSetCell(md, cnt, ss);
		  cnt++;
		}
  return;
}
예제 #4
0
파일: numtns.hpp 프로젝트: nmaxwell/fio_lib
template <class F> inline double energy(NumTns<F>& T)
{
  double sum = 0;
  for(int i=0; i<T.m(); i++)	for(int j=0; j<T.n(); j++)	  for(int k=0; k<T.p(); k++)		sum += abs(T(i,j,k)*T(i,j,k));
  return sum;
}
예제 #5
0
template <class F> inline void clear(NumTns<F>& T)
{
  memset(T.data(), 0, T.m()*T.n()*T.p()*sizeof(F));
}