亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? primitive.cpp

?? 普林斯頓開發(fā)的快速球面調(diào)和變換算法
?? CPP
字號:
// primitive.cpp: implementation of the primitive class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "primitive.h"

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

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

primitive::primitive()
{

}

primitive::~primitive()
{

}

double primitive::L2_an(int m, int l)
{
	return (sqrt((((double) (2*l+3))/((double) (2*l+1))) *
	       (((double) (l-m+1))/((double) (l+m+1)))) *
	  (((double) (2*l+1))/((double) (l-m+1))));

}

double primitive::L2_cn(int m, int l)
{
	if (l != 0) {
    return (-1.0 *
	  sqrt((((double) (2*l+3))/((double) (2*l-1))) *
	       (((double) (l-m+1))/((double) (l+m+1))) *
	       (((double) (l-m))/((double) (l+m)))) *
	  (((double) (l+m))/((double) (l-m+1))));
  }
  else
    return 0.0;

}


double primitive::L2_cn_inv(int m, int l)
{
	  double dl, dm;

  dl = (double) l;
  dm = (double) m;

  return ( -(1.0 + (1. - 2. * dm)/(dm + dl)) *
	   sqrt( ((-1. + 2.*dl)/(3. + 2.*dl)) *
		 ((dl + dl*dl + dm + 2.*dl*dm + dm*dm)/
		  (dl + dl*dl - dm - 2.*dl*dm + dm*dm)) )
	   );


}



double primitive::L2_ancn(int m, int l)
{
	  double dl, dm;

  dl = (double) l;
  dm = (double) m;

  return( sqrt( 4.0 + ( (4.0 * dm * dm - 1.0)/
			(dl * dl - dm * dm) ) ) );

}

void primitive::vec_add(double *data1, double *data2, double *result, int n)
{
	  int k;


  for (k = 0; k < n % 4; ++k)
    result[k] = data1[k] + data2[k];

  for ( ; k < n ; k += 4)
    {
      result[k] = data1[k] + data2[k];
      result[k + 1] = data1[k + 1] + data2[k + 1];
      result[k + 2] = data1[k + 2] + data2[k + 2];
      result[k + 3] = data1[k + 3] + data2[k + 3];
    }

}


void primitive::vec_mul(double scalar, double *data1, double *result, int n)
{
	   int k;


   for( k = 0; k < n % 4; ++k)
     result[k] = scalar * data1[k];

   for( ; k < n; k +=4)
     {
       result[k] = scalar * data1[k];
       result[k + 1] = scalar * data1[k + 1];
       result[k + 2] = scalar * data1[k + 2];
       result[k + 3] = scalar * data1[k + 3];
     }


}

void primitive::vec_pt_mul(double *data1, double *data2, double *result, int n)
{
	   int k;

  
  for(k = 0; k < n % 4; ++k)
    result[k] = data1[k] * data2[k];
  
  for( ; k < n; k +=4)
    {
      result[k] = data1[k] * data2[k];
      result[k + 1] = data1[k + 1] * data2[k + 1];
      result[k + 2] = data1[k + 2] * data2[k + 2];
      result[k + 3] = data1[k + 3] * data2[k + 3];
    }

}

void primitive::ArcCosEvalPts(int n, double *eval_pts)
{
	    int i;
    double twoN;

    twoN = (double) (2 * n);

   for (i=0; i<n; i++)
     eval_pts[i] = (( 2.0*((double)i)+1.0 ) * PI) / twoN;

}


void primitive::EvalPts(int n, double *eval_pts)
{
	    int i;
    double twoN;

    twoN = (double) (2*n);

   for (i=0; i<n; i++)
     eval_pts[i] = cos((( 2.0*((double)i)+1.0 ) * PI) / twoN);


}



void primitive::Pmm_L2(int m, double *eval_pts, int n, double *result)
{
	  int i;
  double md, id, mcons;

  id = (double) 0.0;
  md = (double) m;
  mcons = sqrt(md + 0.5);

  for (i=0; i<m; i++) {
    mcons *= sqrt((md-(id/2.0))/(md-id));
    id += 1.0;
  }
  if (m != 0 )
    mcons *= pow(2.0,-md/2.0);
  if ((m % 2) != 0) mcons *= -1.0;

  for (i=0; i<n; i++) 
    result[i] = mcons * pow(sin(eval_pts[i]),((double) m));


}


void primitive::P_eval(int m, double *coeffs, double *eval_args, double *result, double *workspace, int bw)
{
	    double *prev, *prevprev, *temp1, *temp2, *temp3, *temp4, *x_i;
    int i, j, n;
    double splat;

    prevprev = workspace;
    prev = prevprev + (2*bw);
    temp1 = prev + (2*bw);
    temp2 = temp1 + (2*bw);
    temp3 = temp2 + (2*bw);
    temp4 = temp3 + (2*bw);
    x_i = temp4 + (2*bw);

    n = 2*bw;

    /* now get the evaluation nodes */
    this->EvalPts(n,x_i);

    /*   for(i=0;i<n;i++)
      fprintf(stderr,"in P_eval evalpts[%d] = %lf\n", i, x_i[i]);
      */   
    for (i=0; i<n; i++) 
      prevprev[i] = 0.0;

    if (m == 0) {
	for (i=0; i<n; i++) {
	  /* prev[i] = 0.707106781186547; sqrt(1/2) */
	   prev[i] = 1.0;
	    /* now mult by first coeff and add to result */
	    result[i] = coeffs[0] * prev[i];
	}
    }
    else {
	this->Pmm_L2(m, eval_args, n, prev);
	splat = coeffs[0];
	for (i=0; i<n; i++)
	  result[i] = splat * prev[i];
    }

    for (i=0; i<bw-m-1; i++) {
	this->vec_mul(L2_cn(m,m+i),prevprev,temp1,n);
	this->vec_pt_mul(prev, x_i, temp2, n);
	this->vec_mul(L2_an(m,m+i), temp2, temp3, n);
	this->vec_add(temp3, temp1, temp4, n); /* temp4 now contains P(m,m+i+1) */
	/* now add weighted P(m,m+i+1) to the result */
	splat = coeffs[i+1];
	for (j=0; j<n; j++)
	  result[j] += splat * temp4[j];
	memcpy(prevprev, prev, sizeof(double) * n);
	memcpy(prev, temp4, sizeof(double) * n);
    }

}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩免费电影一区| 久久婷婷久久一区二区三区| 亚洲自拍都市欧美小说| 91久久精品国产91性色tv| 一区二区在线观看免费视频播放 | 一本色道久久综合亚洲aⅴ蜜桃| 亚洲视频免费观看| 欧美日韩久久久久久| 美女一区二区在线观看| 久久久久一区二区三区四区| 丁香天五香天堂综合| 亚洲精品成人少妇| 制服.丝袜.亚洲.另类.中文 | 激情欧美一区二区三区在线观看| 久久久久久久久久美女| 成人av电影免费在线播放| 一区二区三区不卡在线观看 | 色综合天天做天天爱| 亚洲成人av电影在线| 欧美大片在线观看一区二区| 国产suv一区二区三区88区| 亚洲精品国产精品乱码不99| 宅男噜噜噜66一区二区66| 国产高清一区日本| 亚洲精品美国一| 欧美电影免费观看完整版 | 成人高清视频免费观看| 亚洲小说欧美激情另类| 精品伦理精品一区| 色琪琪一区二区三区亚洲区| 美国毛片一区二区| 国产精品每日更新在线播放网址 | 亚洲激情图片qvod| 精品国产免费人成电影在线观看四季| 菠萝蜜视频在线观看一区| 婷婷开心激情综合| 国产欧美一区二区三区鸳鸯浴 | 精品久久久久久亚洲综合网| 99视频精品在线| 免费观看30秒视频久久| 中文字幕制服丝袜一区二区三区| 69堂精品视频| av色综合久久天堂av综合| 免费在线观看成人| 自拍偷拍国产精品| 26uuu亚洲| 欧美日韩日日夜夜| 成人福利视频网站| 免费不卡在线视频| 亚洲人成在线播放网站岛国| 久久综合色播五月| 欧美日韩国产综合视频在线观看| 成人在线视频首页| 美女国产一区二区三区| 亚洲在线视频一区| 国产精品久久久久9999吃药| 日韩精品一区二区三区swag | 国产欧美1区2区3区| 91精品国产麻豆| 色婷婷亚洲综合| 大白屁股一区二区视频| 美女一区二区三区在线观看| 亚洲一区二区欧美| 国产精品久久久久久久蜜臀| 精品福利二区三区| 欧美日韩高清不卡| 色综合久久99| 成人理论电影网| 国产自产高清不卡| 蜜臀91精品一区二区三区| 亚洲综合久久久久| 亚洲少妇最新在线视频| 国产三级精品在线| 精品粉嫩超白一线天av| 日韩一级完整毛片| 欧美日韩色综合| 欧美丝袜自拍制服另类| 色一区在线观看| 99精品一区二区三区| 国产成人亚洲精品青草天美| 久久福利视频一区二区| 日本三级韩国三级欧美三级| 亚洲第一综合色| 亚洲品质自拍视频网站| 国产精品美女久久久久av爽李琼| 国产片一区二区三区| 2020国产成人综合网| 欧美成人午夜电影| 欧美成人一区二区三区| 日韩一级视频免费观看在线| 欧美一区二区精品| 欧美电影一区二区三区| 欧美日韩国产在线播放网站| 欧美亚洲动漫制服丝袜| 日本大香伊一区二区三区| 91丨九色丨蝌蚪丨老版| av中文字幕一区| 91偷拍与自偷拍精品| av一区二区三区四区| 99精品视频在线播放观看| 99久久精品国产导航| 9l国产精品久久久久麻豆| av资源网一区| 色婷婷久久久综合中文字幕| 色综合天天做天天爱| 在线观看av一区二区| 欧美色中文字幕| 欧美日韩国产电影| 欧美福利一区二区| 91精品国产综合久久精品app| 91精品久久久久久蜜臀| 宅男在线国产精品| 精品久久久久香蕉网| 久久精品男人的天堂| 久久久精品综合| 国产欧美日韩精品在线| 国产精品青草久久| 亚洲精品国产无套在线观| 亚洲午夜免费电影| 日韩高清在线观看| 国产呦精品一区二区三区网站| 国产一区二区免费视频| 国产91精品一区二区| av亚洲产国偷v产偷v自拍| 在线欧美小视频| 欧美久久久久久久久中文字幕| 91精品国产黑色紧身裤美女| 精品国产免费久久| 国产精品区一区二区三区| 亚洲另类一区二区| 三级一区在线视频先锋| 精品一区二区三区日韩| 高清国产一区二区| 91麻豆精品秘密| 在线不卡免费欧美| 久久夜色精品国产噜噜av | 偷拍与自拍一区| 精品一区二区精品| 成人性生交大片免费看视频在线| 91片在线免费观看| 欧美肥妇bbw| 国产欧美一区二区在线| 亚洲综合久久久久| 狠狠久久亚洲欧美| 91蝌蚪国产九色| 91精品国产乱码久久蜜臀| 久久免费看少妇高潮| 亚洲欧美一区二区久久| 琪琪久久久久日韩精品| 国产精品69毛片高清亚洲| 99re视频这里只有精品| 在线综合视频播放| 国产精品免费视频网站| 亚洲成av人综合在线观看| 国产剧情在线观看一区二区| 91麻豆福利精品推荐| 欧美成人bangbros| 亚洲人一二三区| 久久精品国产亚洲aⅴ | caoporn国产精品| 欧美精品v日韩精品v韩国精品v| 久久精品欧美一区二区三区不卡| 亚洲丝袜制服诱惑| 久久草av在线| 欧美亚洲高清一区| 亚洲国产精品av| 婷婷久久综合九色综合绿巨人 | 欧美综合欧美视频| 久久久久久久久久电影| 亚洲国产乱码最新视频| 国产乱子轮精品视频| 欧美三区在线观看| 国产欧美日韩另类一区| 日韩av网站免费在线| 91在线云播放| 精品福利视频一区二区三区| 亚洲国产sm捆绑调教视频| 懂色av一区二区三区免费看| 3d成人h动漫网站入口| 亚洲美女在线一区| 国产精品白丝jk黑袜喷水| 欧美久久高跟鞋激| 亚洲色图色小说| 国产精一区二区三区| 欧美乱妇一区二区三区不卡视频| 国产精品乱子久久久久| 久久99九九99精品| 欧美日韩视频在线一区二区| 亚洲欧洲av一区二区三区久久| 激情小说欧美图片| 欧美日韩精品欧美日韩精品一| 国产精品高潮久久久久无| 国产在线精品一区二区不卡了| 欧美浪妇xxxx高跟鞋交| 亚洲图片另类小说| 粗大黑人巨茎大战欧美成人| 欧美精品一区二区久久婷婷 | 91在线视频播放| 久久久高清一区二区三区| 日本不卡一区二区|