Oberon Community Platform Forum
December 07, 2019, 08:29:06 AM *
Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
News:
 
   Home   Help Search Login Register  
Pages: [1]
  Print  
Author Topic: LaTeX in A2/WinAos/LinuxAos  (Read 11233 times)
darek
Jr. Member
**
Posts: 59


« on: July 23, 2008, 09:53:08 PM »

Hello everybody,
   did somebody thing about  porting  (I think, there is th Native Oberon port)  the LaTex system  to A2 and/or (Win|Linux)Aos environment ?

Yet another set of questions:
 1.  Is there any interest in DSP algorithms  implemented in Active Oberon? 
      Recently I have reanimated the FFT algorithm  (ported by Ulf Dittmer some time ago)   to work with the CAPO package.
      I am going to compare its performance  against  FFT implementation  from Matlab (which is based on the FFTW package)
      and share result with you.

 2. Did somebody try to access a sound card from WinAos or even better from A2 ?

Comments are welcome !

Regards,
  Darek

 
Logged
staubesv
Administrator
Sr. Member
*****
Posts: 387



« Reply #1 on: July 24, 2008, 08:21:57 AM »

I'm not aware about efforts to port the LaTex system to A2.

1. Also not aware about DSP algorithms. Please let us know the results of the performance comparison to Matlab.
2. WinAOS: I don't think so. There are audio drivers for A2, but just three: Ensoniq ES137x, Yamaha YMF754 and Intel i810 chipsets AC97.
Logged
BohdanT
Sr. Member
****
Posts: 271


Life is difficult, but fortunately is short!


WWW
« Reply #2 on: July 24, 2008, 12:58:47 PM »

Quote
Is there any interest in DSP algorithms  implemented in Active Oberon?
Yes, of course.
   
this is an interesting link:
http://www.zinnamturm.eu/downloadsDH.htm#Filter
is to BlackBox, but easily adaptable to A2
Logged
fnecati
Jr. Member
**
Posts: 60


« Reply #3 on: July 26, 2008, 05:05:27 PM »

Hi Darek,

I am using Ulf Dittmer's FFT module and adapted it for 2D FFT.  I made a speed check with N=4096 one dim. complex data in WinAos, Scilab-5 which uses FFTW and Scilab-4 which uses Atlas library.

Run is for a test data about 1000 times:
  forward FFT
   inverse FFT     

total time:   
WinAos: 1469 ms.
Scilab-5.0-beta-4: 500-531 ms.
Scilab-4.1.2: 780 ms.

Machine: Intel Core2Quad at 2.4GHz.

It needs speed improvement, but how ?

May be, Felix can give some hints !

- Necati

Logged
darek
Jr. Member
**
Posts: 59


« Reply #4 on: July 28, 2008, 03:46:00 PM »

Hi Necati,
  Thanks for the info. Could you tell me how did you measure the execution time in WinAos?  Then, I can run it on my Athlon X2 machine and see how it performs.

Regards,
  Darek
Logged
fnecati
Jr. Member
**
Posts: 60


« Reply #5 on: July 28, 2008, 06:19:07 PM »


The code was as follows, I added two version of timing here, using Kernel.MilliTimer and Kernel.GetTicks()


....
TYPE
   Complex=RECORD
      r, i: REAL;
   END;

   Data1DC=POINTER TO ARRAY OF Complex;
......

   PROCEDURE Bench1d*; 
   VAR dat: Data1DC; 
       siz, i,  time, time1: LONGINT; 
                 timer: Kernel.MilliTimer;
   BEGIN
       siz := 4096;  NEW( dat, siz ); (* create data array *)

      (* fill it with some values, for example., gaussian function *)
      FOR i := 0 TO siz - 1 DO dat.r := Math.exp(-(i-siz/2)*(i-siz/2)/1000 );  dat.i := 0.0;  END;

                          Kernel.SetTimer(timer,0);
      time:=Kernel.GetTicks();
      FOR i := 1 TO 1000 DO
         MyFFT.FFT( dat, TRUE );
         MyFFT.FFT( dat, FALSE );
      END;
      time:=Kernel.GetTicks()-time;
                          time1 := Kernel.Elapsed(timer);

      KernelLog.String("time= "); KernelLog.Int(time, 0); KernelLog.String(" ms."); KernelLog.Ln;
      KernelLog.String("time1= "); KernelLog.Int(time1, 0); KernelLog.String(" ms."); KernelLog.Ln;

   END Bench1d; 
Logged
fnecati
Jr. Member
**
Posts: 60


« Reply #6 on: July 28, 2008, 06:29:42 PM »

here is the scilab version,
// with scilab-4.1.2 version

N=4096; //length of data
x=0:N-1;
y=exp(-((x-N/2).^2)/1000);
tic
for i=1:1000,
   z=fft(y);
   z1=ifft(z);
end;   
toc

// for N=4096
// 0.780 sec.
Logged
darek
Jr. Member
**
Posts: 59


« Reply #7 on: July 28, 2008, 10:11:46 PM »

Hi Necati,
 Now, we have the same way of measuring time.

The  results are:
  Matlab 
   Tfft + Tifft on avarage  0.68s  to  0.69s   for N= 4096 and M= 1000 iterations

   WinAos that uses Capo complex numbers + some minor changes inside FFT routines
   
   Tfft + Tifft  = on avarage  5640 ms for N = 4096 and M=1000 iterations  Shocked !!!!

It seems, that either I did something wrong or Capo generates to much overhead.
I will try to return to the basic version of the FFT module tomorrow.

All modules are attached.

Regards,
  Darek

P.S I run these  tests on the PC with AMD Athlon 64 X2 Dual Core 4200+ (~1.9G2Hz), WinXP SP2
      WinAos r.1239
      Matlab  v.7.1 SP 3




* test_fft.m (0.19 KB - downloaded 398 times.)
* FFT_capo.Mod (12.6 KB - downloaded 386 times.)
* TestFFT.Mod (2.03 KB - downloaded 392 times.)
« Last Edit: July 28, 2008, 10:14:06 PM by darek » Logged
fnecati
Jr. Member
**
Posts: 60


« Reply #8 on: July 30, 2008, 03:15:07 PM »


I recovered that I used another FFT module, sorry. I tried your modules and Ulf's and they are really slow.
I adapted the FFT module from oo2c distribution to A2 and it is faster than Ulf's.

I do not know whether it is possible to put it A2 distribution without consent of authors of oo2c, copyright problems, GPL?.

Speed can be increased, i think, 2-3 times by using SIMD instructions in Butterfly and Bitrev procedures, then, we can have FFT routine about same speed as matlab's for radix-2 FFT. May be, Matrix Project people can do this ?




- Necati.

Here, I attached the modules for testing.

My results:

Length(N)     Time(ms)      Accuracy(dB)
  128             0.02933         -129.12
  256             0.06629         -129.09
  512             0.14021         -128.88
 1024             0.30143         -128.88
 2048             0.64860         -128.52
 4096             1.41964         -128.51
 8192             3.23851         -128.46

* FFToo2c.Mod (4.55 KB - downloaded 350 times.)
* MyFFTSpeed.Mod (3.18 KB - downloaded 393 times.)
Logged
Alexey
Newbie
*
Posts: 27


« Reply #9 on: August 04, 2008, 10:32:19 AM »

Hi Guys!

Here implementation of two common FFT algorithms: Stockham autosort which does not use explicit bit reversal but requiring additional storage of the same size as input data, and classical Cooley-Tukey with bit reversal, and complete inplace computation. The implementation is free, nothing to do with any licenses... At the moment the library provides optimizations using SSE2 for LONGREALs. In some time optimization for REALs using SSE will be available too. Optimized (SSE2) code is approximately 2 times faster than non-optimized one. You can check it by activating/deactivating optimization (see LDSPFFT.Tool). With SSE3 (which is not supported by the compiler at the moment) I expect to see some improvement in speed.

Oberon Stockham code with optimization is not as fast as fftw used in Matlab, and approximately 2 times slower (tests were made on HP 6710b laptop with T7100 dual core CPU). Implemented in C and compiled using MSVC 2008 with optimizations (without explicit use of SIMD intrinsics) it gives approximately the same speed as in Matlab. After some analysis of Oberon code it turned out that quite a big part of the execution time is spent just for nested looping (without computing FFT butterflies).

Here the output of the test program ran on mentioned laptop.

NON-OPTIMIZED

FFT Stockham:
N=256, nRetry=16000, time per {FFT,IFFT}=  0.091 ms (  225.986 MFLOPS), restit. err. (L2)=  0.0000000000069992
N=512, nRetry=8000, time per {FFT,IFFT}=  0.209 ms (  220.743 MFLOPS), restit. err. (L2)=  0.0000000000070705
N=1024, nRetry=4000, time per {FFT,IFFT}=  0.437 ms (  234.459 MFLOPS), restit. err. (L2)=  0.0000000000050166
N=2048, nRetry=2000, time per {FFT,IFFT}=  1.014 ms (  222.170 MFLOPS), restit. err. (L2)=  0.0000000000041141
N=4096, nRetry=1000, time per {FFT,IFFT}=  2.121 ms (  231.740 MFLOPS), restit. err. (L2)=  0.0000000000027097
N=8192, nRetry=500, time per {FFT,IFFT}=  4.618 ms (  230.611 MFLOPS), restit. err. (L2)=  0.0000000000023724
N=16384, nRetry=250, time per {FFT,IFFT}=  9.548 ms (  240.235 MFLOPS), restit. err. (L2)=  0.0000000000016829
N=32768, nRetry=125, time per {FFT,IFFT}=  20.840 ms (  235.854 MFLOPS), restit. err. (L2)=  0.0000000000014546
N=65536, nRetry=63, time per {FFT,IFFT}=  44.317 ms (  236.606 MFLOPS), restit. err. (L2)=  0.0000000000011447
Done!

FFT Cooley-Tukey:
N=256, nRetry=16000, time per {FFT,IFFT}=  0.095 ms (  216.576 MFLOPS), restit. err. (L2)=  0.0000000000069992
N=512, nRetry=8000, time per {FFT,IFFT}=  0.209 ms (  220.875 MFLOPS), restit. err. (L2)=  0.0000000000070705
N=1024, nRetry=4000, time per {FFT,IFFT}=  0.441 ms (  232.331 MFLOPS), restit. err. (L2)=  0.0000000000050166
N=2048, nRetry=2000, time per {FFT,IFFT}=  0.983 ms (  229.176 MFLOPS), restit. err. (L2)=  0.0000000000041141
N=4096, nRetry=1000, time per {FFT,IFFT}=  2.199 ms (  223.520 MFLOPS), restit. err. (L2)=  0.0000000000027097
N=8192, nRetry=500, time per {FFT,IFFT}=  4.680 ms (  227.556 MFLOPS), restit. err. (L2)=  0.0000000000023724
N=16384, nRetry=250, time per {FFT,IFFT}=  10.168 ms (  225.586 MFLOPS), restit. err. (L2)=  0.0000000000016829
N=32768, nRetry=125, time per {FFT,IFFT}=  21.848 ms (  224.973 MFLOPS), restit. err. (L2)=  0.0000000000014546
N=65536, nRetry=63, time per {FFT,IFFT}=  52.492 ms (  199.759 MFLOPS), restit. err. (L2)=  0.0000000000011447
Done!

OPTIMIZED USING SSE2

FFT Stockham:
N=256, nRetry=16000, time per {FFT,IFFT}=  0.047 ms (  438.075 MFLOPS), restit. err. (L2)=  0.0000000000069170
N=512, nRetry=8000, time per {FFT,IFFT}=  0.113 ms (  407.337 MFLOPS), restit. err. (L2)=  0.0000000000068314
N=1024, nRetry=4000, time per {FFT,IFFT}=  0.222 ms (  460.742 MFLOPS), restit. err. (L2)=  0.0000000000050790
N=2048, nRetry=2000, time per {FFT,IFFT}=  0.530 ms (  424.656 MFLOPS), restit. err. (L2)=  0.0000000000043623
N=4096, nRetry=1000, time per {FFT,IFFT}=  1.030 ms (  477.204 MFLOPS), restit. err. (L2)=  0.0000000000026676
N=8192, nRetry=500, time per {FFT,IFFT}=  2.308 ms (  461.421 MFLOPS), restit. err. (L2)=  0.0000000000024684
N=16384, nRetry=250, time per {FFT,IFFT}=  4.432 ms (  517.545 MFLOPS), restit. err. (L2)=  0.0000000000017581
N=32768, nRetry=125, time per {FFT,IFFT}=  10.480 ms (  469.008 MFLOPS), restit. err. (L2)=  0.0000000000014791
N=65536, nRetry=63, time per {FFT,IFFT}=  23.762 ms (  441.284 MFLOPS), restit. err. (L2)=  0.0000000000011787
Done!

FFT Cooley-Tukey:
N=256, nRetry=16000, time per {FFT,IFFT}=  0.045 ms (  456.379 MFLOPS), restit. err. (L2)=  0.0000000000069992
N=512, nRetry=8000, time per {FFT,IFFT}=  0.096 ms (  482.513 MFLOPS), restit. err. (L2)=  0.0000000000070705
N=1024, nRetry=4000, time per {FFT,IFFT}=  0.211 ms (  485.884 MFLOPS), restit. err. (L2)=  0.0000000000050166
N=2048, nRetry=2000, time per {FFT,IFFT}=  0.476 ms (  473.775 MFLOPS), restit. err. (L2)=  0.0000000000041141
N=4096, nRetry=1000, time per {FFT,IFFT}=  1.124 ms (  437.295 MFLOPS), restit. err. (L2)=  0.0000000000027097
N=8192, nRetry=500, time per {FFT,IFFT}=  2.466 ms (  431.857 MFLOPS), restit. err. (L2)=  0.0000000000023724
N=16384, nRetry=250, time per {FFT,IFFT}=  5.428 ms (  422.579 MFLOPS), restit. err. (L2)=  0.0000000000016829
N=32768, nRetry=125, time per {FFT,IFFT}=  11.976 ms (  410.421 MFLOPS), restit. err. (L2)=  0.0000000000014546
N=65536, nRetry=63, time per {FFT,IFFT}=  26.492 ms (  395.808 MFLOPS), restit. err. (L2)=  0.0000000000011447
Done!


Could you try the implementation on your PCs?

Best regards
Alexey


* LDSPFFT.ZIP (12.78 KB - downloaded 385 times.)
Logged
fnecati
Jr. Member
**
Posts: 60


« Reply #10 on: August 05, 2008, 11:07:29 AM »


Here are my benchmarks for Intel Core2Quad Q6600 @2.4GHz, with WinAos rev. 1415;

- Necati


{P cpuid= 0, pid= 144 Warning: LDSPFFTOptimized: SSE2 optimization for LONGREALs is activated!
}

FFT Stockham:
N=256, nRetry=16000, time per {FFT,IFFT}=  0.035 ms (  583.060 MFLOPS), restit. err. (L2)=  0.0000000000069170
N=512, nRetry=8000, time per {FFT,IFFT}=  0.088 ms (  524.381 MFLOPS), restit. err. (L2)=  0.0000000000068314
N=1024, nRetry=4000, time per {FFT,IFFT}=  0.172 ms (  595.349 MFLOPS), restit. err. (L2)=  0.0000000000050790
N=2048, nRetry=2000, time per {FFT,IFFT}=  0.414 ms (  544.155 MFLOPS), restit. err. (L2)=  0.0000000000043623
N=4096, nRetry=1000, time per {FFT,IFFT}=  0.797 ms (  616.713 MFLOPS), restit. err. (L2)=  0.0000000000026676
N=8192, nRetry=500, time per {FFT,IFFT}=  1.812 ms (  587.726 MFLOPS), restit. err. (L2)=  0.0000000000024684
N=16384, nRetry=250, time per {FFT,IFFT}=  3.564 ms (  643.591 MFLOPS), restit. err. (L2)=  0.0000000000017581
N=32768, nRetry=125, time per {FFT,IFFT}=  7.872 ms (  624.390 MFLOPS), restit. err. (L2)=  0.0000000000014791
N=65536, nRetry=63, time per {FFT,IFFT}=  16.111 ms (  650.840 MFLOPS), restit. err. (L2)=  0.0000000000011787
Done!

FFT Cooley-Tukey:
N=256, nRetry=16000, time per {FFT,IFFT}=  0.036 ms (  566.920 MFLOPS), restit. err. (L2)=  0.0000000000069992
N=512, nRetry=8000, time per {FFT,IFFT}=  0.080 ms (  575.101 MFLOPS), restit. err. (L2)=  0.0000000000070705
N=1024, nRetry=4000, time per {FFT,IFFT}=  0.176 ms (  582.646 MFLOPS), restit. err. (L2)=  0.0000000000050166
N=2048, nRetry=2000, time per {FFT,IFFT}=  0.391 ms (  576.901 MFLOPS), restit. err. (L2)=  0.0000000000041141
N=4096, nRetry=1000, time per {FFT,IFFT}=  0.937 ms (  524.568 MFLOPS), restit. err. (L2)=  0.0000000000027097
N=8192, nRetry=500, time per {FFT,IFFT}=  2.064 ms (  515.969 MFLOPS), restit. err. (L2)=  0.0000000000023724
N=16384, nRetry=250, time per {FFT,IFFT}=  4.500 ms (  509.724 MFLOPS), restit. err. (L2)=  0.0000000000016829
N=32768, nRetry=125, time per {FFT,IFFT}=  9.624 ms (  510.723 MFLOPS), restit. err. (L2)=  0.0000000000014546
N=65536, nRetry=63, time per {FFT,IFFT}=  21.079 ms (  497.442 MFLOPS), restit. err. (L2)=  0.0000000000011447
Done!


{P cpuid= 0, pid= 2984 Warning: LDSPFFT: all optimizations were deactivated!
}

FFT Stockham:
N=256, nRetry=16000, time per {FFT,IFFT}=  0.098 ms (  209.648 MFLOPS), restit. err. (L2)=  0.0000000000069992
N=512, nRetry=8000, time per {FFT,IFFT}=  0.225 ms (  205.142 MFLOPS), restit. err. (L2)=  0.0000000000070705
N=1024, nRetry=4000, time per {FFT,IFFT}=  0.488 ms (  209.729 MFLOPS), restit. err. (L2)=  0.0000000000050166
N=2048, nRetry=2000, time per {FFT,IFFT}=  1.117 ms (  201.683 MFLOPS), restit. err. (L2)=  0.0000000000041141
N=4096, nRetry=1000, time per {FFT,IFFT}=  2.343 ms (  209.782 MFLOPS), restit. err. (L2)=  0.0000000000027097
N=8192, nRetry=500, time per {FFT,IFFT}=  5.250 ms (  202.850 MFLOPS), restit. err. (L2)=  0.0000000000023724
N=16384, nRetry=250, time per {FFT,IFFT}=  10.876 ms (  210.901 MFLOPS), restit. err. (L2)=  0.0000000000016829
N=32768, nRetry=125, time per {FFT,IFFT}=  23.880 ms (  205.829 MFLOPS), restit. err. (L2)=  0.0000000000014546
N=65536, nRetry=63, time per {FFT,IFFT}=  49.603 ms (  211.393 MFLOPS), restit. err. (L2)=  0.0000000000011447
Done!

FFT Cooley-Tukey:
N=256, nRetry=16000, time per {FFT,IFFT}=  0.094 ms (  218.453 MFLOPS), restit. err. (L2)=  0.0000000000069992
N=512, nRetry=8000, time per {FFT,IFFT}=  0.207 ms (  222.474 MFLOPS), restit. err. (L2)=  0.0000000000070705
N=1024, nRetry=4000, time per {FFT,IFFT}=  0.449 ms (  228.062 MFLOPS), restit. err. (L2)=  0.0000000000050166
N=2048, nRetry=2000, time per {FFT,IFFT}=  0.985 ms (  228.827 MFLOPS), restit. err. (L2)=  0.0000000000041141
N=4096, nRetry=1000, time per {FFT,IFFT}=  2.188 ms (  224.644 MFLOPS), restit. err. (L2)=  0.0000000000027097
N=8192, nRetry=500, time per {FFT,IFFT}=  4.686 ms (  227.264 MFLOPS), restit. err. (L2)=  0.0000000000023724
N=16384, nRetry=250, time per {FFT,IFFT}=  10.064 ms (  227.917 MFLOPS), restit. err. (L2)=  0.0000000000016829
N=32768, nRetry=125, time per {FFT,IFFT}=  21.496 ms (  228.656 MFLOPS), restit. err. (L2)=  0.0000000000014546
N=65536, nRetry=63, time per {FFT,IFFT}=  46.127 ms (  227.324 MFLOPS), restit. err. (L2)=  0.0000000000011447
Done!

Logged
fnecati
Jr. Member
**
Posts: 60


« Reply #11 on: November 26, 2008, 11:26:42 AM »

I wrote a wrapper for FFTW library (for WinAos and BlackBox).
Wrapped .NET version is also availabe at http://taltos.pha.jhu.edu/~tamas/bytes/fftwcsharp.html, which can be used in Zonnon too.

Could we add WinAos version to OCTK site?,  Alexey !

It is suitable for any length (not limited to powers of 2) and 1D, 2D, 3D, ..

By using FFTW library (libfftw3-3.dll) wrapper, i have got the following benchmark results:
( Intel Core2Quad Q6600 @2.4GHz )

FFTW library Testfftw:
N=256, nRetry=16000, time per {FFT,IFFT}=  0.010 ms (  2100.513 MFLOPS) (  15104 flops), restit. err. (L2)=  0.0000000000001006
N=512, nRetry=8000, time per {FFT,IFFT}=  0.021 ms (  2143.256 MFLOPS) (  34048 flops), restit. err. (L2)=  0.0000000000008862
N=1024, nRetry=4000, time per {FFT,IFFT}=  0.055 ms (  1878.899 MFLOPS) (  43264 flops), restit. err. (L2)=  0.0000000000006236
N=2048, nRetry=2000, time per {FFT,IFFT}=  0.125 ms (  1802.240 MFLOPS) (  96640 flops), restit. err. (L2)=  0.0000000000011752
N=4096, nRetry=1000, time per {FFT,IFFT}=  0.250 ms (  1966.080 MFLOPS) (  215296 flops), restit. err. (L2)=  0.0000000000012424
N=8192, nRetry=500, time per {FFT,IFFT}=  0.562 ms (  1894.947 MFLOPS) (  475136 flops), restit. err. (L2)=  0.0000000000013379
N=16384, nRetry=250, time per {FFT,IFFT}=  1.436 ms (  1597.326 MFLOPS) (  1140736 flops), restit. err. (L2)=  0.0000000000004646
N=32768, nRetry=125, time per {FFT,IFFT}=  3.000 ms (  1638.400 MFLOPS) (  2424832 flops), restit. err. (L2)=  0.0000000000003882
N=65536, nRetry=63, time per {FFT,IFFT}=  6.444 ms (  1627.101 MFLOPS) (  5275648 flops), restit. err. (L2)=  0.0000000000004375
N=200, nRetry=16000, time per {FFT,IFFT}=  0.011 ms (  1488.372 MFLOPS) (  11260 flops), restit. err. (L2)=  0.0000000000027470
N=600, nRetry=8000, time per {FFT,IFFT}=  0.039 ms (  1533.546 MFLOPS) (  26720 flops), restit. err. (L2)=  0.0000000000021450
N=2000, nRetry=2000, time per {FFT,IFFT}=  0.133 ms (  1654.135 MFLOPS) (  107600 flops), restit. err. (L2)=  0.0000000000006052
N=4500, nRetry=1000, time per {FFT,IFFT}=  0.281 ms (  2081.851 MFLOPS) (  321600 flops), restit. err. (L2)=  0.0000000000003774
N=8500, nRetry=500, time per {FFT,IFFT}=  1.312 ms (  907.012 MFLOPS) (  1019900 flops), restit. err. (L2)=  0.0000000000017475
N=17000, nRetry=250, time per {FFT,IFFT}=  2.812 ms (  906.828 MFLOPS) (  1852800 flops), restit. err. (L2)=  0.0000000000012294
N=40000, nRetry=125, time per {FFT,IFFT}=  4.376 ms (  1462.523 MFLOPS) (  3521000 flops), restit. err. (L2)=  0.0000000000006917
N=60000, nRetry=63, time per {FFT,IFFT}=  5.952 ms (  1612.800 MFLOPS) (  5960000 flops), restit. err. (L2)=  0.0000000000003673
Done!
Logged
Alexey
Newbie
*
Posts: 27


« Reply #12 on: November 26, 2008, 03:16:59 PM »

Hi Fnecati,

Nice results! Give me your wrapper and I will add it to the OCTK. Actually I have an idea how to make 1D FFT even faster using parallelization via tensor decomposition. But currently I am quite busy with implementing OCTK tensor/matrix basics using ATI/NVidia GPUs. I believe "teraflops" will be available soon for Oberon users Smiley

Alexey
Logged
fnecati
Jr. Member
**
Posts: 60


« Reply #13 on: November 27, 2008, 09:56:12 AM »

Here, I attached wrapper modules and windows binaries of fftw dlls.

New versions of FFTW dlls can be obtained from http://fftw.org/install/windows.html.

- Necati.

* FFTW.zip (10.58 KB - downloaded 391 times.)
* libfftw3_3dlls.zip (883.26 KB - downloaded 417 times.)
Logged
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2015, Simple Machines Valid XHTML 1.0! Valid CSS!