⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 primitive_fst.cpp

📁 普林斯顿开发的快速球面调和变换算法
💻 CPP
字号:
// primitive_FST.cpp: implementation of the primitive_FST class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "primitive_FST.h"

#include <math.h>

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

primitive_FST::primitive_FST()
{

}

primitive_FST::~primitive_FST()
{

}



int primitive_FST::seanindex(int m, int l, int bw)
{
  int bigL;
  bigL = bw - 1;
  if( m >= 0 )
    return( m * ( bigL + 1 ) - ( ( m * (m - 1) ) /2 ) + ( l - m ) );
  else
    return( ( ( bigL * ( bigL + 3 ) ) /2 ) + 1 +
	    ( ( bigL + m ) * ( bigL + m + 1 ) / 2 ) + ( l - abs( m ) ) );


}



void primitive_FST::seanindex2(int m, int l, int bw, int *loc)
{
	 int bigL;
  
  bigL = bw - 1;
  
  /* first index for (l,m) */
  loc[0] = m * ( bigL + 1 ) - ( ( m * (m - 1) ) /2 ) + ( l - m );
  
  /* second index for (l,-m) */
  loc[1] = ( ( bigL * ( bigL + 3 ) ) /2 ) + 1 +
    ( ( bigL - m ) * ( bigL - m + 1 ) / 2 ) + ( l -  m ) ;


}



void primitive_FST::transpose(double *array, int size)
{
	register int i, j;
  double t1, t2, t3, t4;

  for(i = 0; i < size; i += 2)
    {
      t1 = array[(i * size) + i + 1];
      array[(i * size) + i + 1] = array[((i + 1) * size) + i];
      array[((i + 1) * size) + i] = t1;
      for(j = (i + 2); j < size; j += 2)
	{
	  t1 = array[(i*size)+j]; t2 = array[(i*size)+j+1];
	  t3 = array[((i+1)*size)+j]; t4 = array[((i+1)*size)+j+1];
	  array[(i*size)+j] = array[(j*size)+i];
	  array[(i*size)+j+1] = array[((j+1)*size)+i];
	  array[((i+1)*size)+j] = array[(j*size)+i+1];
	  array[((i+1)*size)+j+1] = array[((j+1)*size)+i+1];
	  array[(j*size)+i] = t1;
	  array[((j+1)*size)+i] = t2;
	  array[(j*size)+i+1] = t3;
	  array[((j+1)*size)+i+1] = t4;
	}
    }


}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -