Главная страница


ru.algorithms

 
 - RU.ALGORITHMS ----------------------------------------------------------------
 From : Evgeny Sharandin                     2:5020/755.12  18 Dec 2002  02:35:00
 To : Ilia Kantor
 Subject : FFT - faq
 -------------------------------------------------------------------------------- 
 
 Привет Ilia!
 
 14 декабря 2002 года (а было тогда 02:47)
 Ilia Kantor в своем письме к Nick Poroshin писал:
 
  IK> А я чуток закомментарю его.. Конструктивной критикой, дабы стал лучше.
  IK> Только самое необходимое.
 
  NP>> #include <math.h>
  NP>> #include <stdio.h>
 
  NP>> void fft(double *x1,double *y1,int n,int m,int dir)
  NP>> {
  NP>>  #define pi  3.14159265
 
  IK> Такой точности пи хватит разве что для float.
  IK>  #define pi 3.141592653589793238462643383
 
 Основная причина громадной погрешности зарыта именно здесь ;)
 
  NP>> cos_ = cos(arg);
  NP>> sin_ = sin(arg);
 
  IK> Тормознутые функции..
 
 В современных процесорах кеш-промах обходится дороже.
 
  IK> Лучше брать значения из предварительно созданной
  IK> таблицы.
 
 Уже не факт, что лучше. Скорее фифти-фифти.
 
  NP>>     u3=u1*cos_-u2*sin_;
  NP>>     u2=u2*cos_+u1*sin_;
 
  IK> Эта рекуррентная последовательность для тригонометрии приводит к
  IK> быстрому росту ошибки. Лучше хранить не сам корень из -1 в виде (cos,
  IK> sin), а пару (1-cos, sin). Соответственно, меняется формула.
 
  NP>>  for(i=0;i<n;i++) {
  NP>>     x1[i]=x1[i]/n;
  NP>>     y1[i]=y1[i]/n;
  NP>>  }
 
  IK> Косметическое исправление: лучше сначала вычислить inv=1/n, а потом
  IK> домножать на него.
 
 В данном случае не принципиально. Во-первых, доля затрачиваемого времени на
 масштабирование мала. Во-вторых, нет необходимости делать масштабирование при
 каждом преобразовании. В-третьих, умный компилятор сам разбертся.
 
 С уважением, Evgeny                           18 декабря 2002 года
 
 ---
  * Origin: LID (2:5020/755.12)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 FFT - faq   Nick Poroshin   10 Dec 2002 21:40:08 
 FFT - faq   Evgeny Sharandin   13 Dec 2002 03:06:00 
 FFT - faq   Ilia Kantor   14 Dec 2002 03:37:16 
 FFT - faq   Evgeny Sharandin   18 Dec 2002 02:27:00 
 FFT - faq   Nick Poroshin   16 Dec 2002 11:10:21 
 FFT - faq   Ilia Kantor   16 Dec 2002 21:27:27 
 FFT - faq   Nick Poroshin   18 Dec 2002 01:23:21 
 FFT - faq   Ilia Kantor   18 Dec 2002 00:59:27 
 FFT - faq   Nick Poroshin   18 Dec 2002 05:04:07 
 Re: FFT - faq   Dmitry Shuklin   18 Dec 2002 13:43:02 
 FFT - faq   Nick Poroshin   18 Dec 2002 23:56:18 
 FFT - faq   Ilia Kantor   14 Dec 2002 03:47:33 
 FFT - faq   Vladimir Vassilevsky   14 Dec 2002 06:55:03 
 FFT - faq   Ilia Kantor   14 Dec 2002 19:01:03 
 FFT - faq   Denis Artuhov   14 Dec 2002 17:09:55 
 Re: FFT - faq   Michael Ryazanov   17 Dec 2002 00:09:00 
 FFT - faq   Nick Poroshin   16 Dec 2002 11:23:51 
 FFT - faq   Ilia Kantor   16 Dec 2002 21:31:15 
 Re: FFT - faq   Michael Ryazanov   17 Dec 2002 00:16:00 
 FFT - faq   Evgeny Sharandin   18 Dec 2002 02:35:00 
Архивное /ru.algorithms/39153dffd2ae.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional