comparison data/fft/FFTMemoryCache.cpp @ 383:94fc0591ea43 1.2-stable

* merge from trunk (1.2 ended up being tracked from trunk, but we may want this branch for fixes later)
author Chris Cannam
date Wed, 27 Feb 2008 10:32:45 +0000
parents aa8dbac62024
children
comparison
equal deleted inserted replaced
349:f39d33b0b265 383:94fc0591ea43
16 #include "FFTMemoryCache.h" 16 #include "FFTMemoryCache.h"
17 #include "system/System.h" 17 #include "system/System.h"
18 18
19 #include <iostream> 19 #include <iostream>
20 20
21 //#define DEBUG_FFT_MEMORY_CACHE 1
22
21 FFTMemoryCache::FFTMemoryCache(StorageType storageType) : 23 FFTMemoryCache::FFTMemoryCache(StorageType storageType) :
22 m_width(0), 24 m_width(0),
23 m_height(0), 25 m_height(0),
24 m_magnitude(0), 26 m_magnitude(0),
25 m_phase(0), 27 m_phase(0),
28 m_freal(0), 30 m_freal(0),
29 m_fimag(0), 31 m_fimag(0),
30 m_factor(0), 32 m_factor(0),
31 m_storageType(storageType) 33 m_storageType(storageType)
32 { 34 {
35 #ifdef DEBUG_FFT_MEMORY_CACHE
33 std::cerr << "FFTMemoryCache[" << this << "]::FFTMemoryCache (type " 36 std::cerr << "FFTMemoryCache[" << this << "]::FFTMemoryCache (type "
34 << m_storageType << ")" << std::endl; 37 << m_storageType << ")" << std::endl;
38 #endif
35 } 39 }
36 40
37 FFTMemoryCache::~FFTMemoryCache() 41 FFTMemoryCache::~FFTMemoryCache()
38 { 42 {
39 // std::cerr << "FFTMemoryCache[" << this << "]::~FFTMemoryCache" << std::endl; 43 #ifdef DEBUG_FFT_MEMORY_CACHE
44 std::cerr << "FFTMemoryCache[" << this << "]::~FFTMemoryCache" << std::endl;
45 #endif
40 46
41 for (size_t i = 0; i < m_width; ++i) { 47 for (size_t i = 0; i < m_width; ++i) {
42 if (m_magnitude && m_magnitude[i]) free(m_magnitude[i]); 48 if (m_magnitude && m_magnitude[i]) free(m_magnitude[i]);
43 if (m_phase && m_phase[i]) free(m_phase[i]); 49 if (m_phase && m_phase[i]) free(m_phase[i]);
44 if (m_fmagnitude && m_fmagnitude[i]) free(m_fmagnitude[i]); 50 if (m_fmagnitude && m_fmagnitude[i]) free(m_fmagnitude[i]);
57 } 63 }
58 64
59 void 65 void
60 FFTMemoryCache::resize(size_t width, size_t height) 66 FFTMemoryCache::resize(size_t width, size_t height)
61 { 67 {
62 // std::cerr << "FFTMemoryCache[" << this << "]::resize(" << width << "x" << height << " = " << width*height << ")" << std::endl; 68 #ifdef DEBUG_FFT_MEMORY_CACHE
69 std::cerr << "FFTMemoryCache[" << this << "]::resize(" << width << "x" << height << " = " << width*height << ")" << std::endl;
70 #endif
63 71
64 if (m_width == width && m_height == height) return; 72 if (m_width == width && m_height == height) return;
65 73
66 if (m_storageType == Compact) { 74 if (m_storageType == Compact) {
67 resize(m_magnitude, width, height); 75 resize(m_magnitude, width, height);
79 m_factor = (float *)realloc(m_factor, width * sizeof(float)); 87 m_factor = (float *)realloc(m_factor, width * sizeof(float));
80 88
81 m_width = width; 89 m_width = width;
82 m_height = height; 90 m_height = height;
83 91
84 // std::cerr << "done, width = " << m_width << " height = " << m_height << std::endl; 92 #ifdef DEBUG_FFT_MEMORY_CACHE
93 std::cerr << "done, width = " << m_width << " height = " << m_height << std::endl;
94 #endif
85 } 95 }
86 96
87 void 97 void
88 FFTMemoryCache::resize(uint16_t **&array, size_t width, size_t height) 98 FFTMemoryCache::resize(uint16_t **&array, size_t width, size_t height)
89 { 99 {