/* ***************************************************** ** in-place Radix-2 inverse FFT for real values ** (by the so-called "packing method") ** data: array of doubles: ** re(0),re(size/2),re(1),im(1),re(2),im(2),...,re(size/2-1),im(size/2-1) ** ** output: ** re(0),re(1),re(2),...,re(size-1) ** NOT normalized by array length ** ** Source: see the routines it calls ... ******************************************************* */ void irealfft_packed(MYFLT *data, MYFLT *outdata, int size, MYFLT *twiddle) { int i; size >>= 1; unrealize(data, size); unshuffle(data, size); inverse_dit_butterfly(data, size, twiddle); size <<= 1; for (i=0; i<size; i++) outdata[i] = data[i] * 2; }
/*********************************************************************** * PALETTE_UnrealizeObject */ static BOOL PALETTE_UnrealizeObject( HGDIOBJ handle ) { PALETTEOBJ *palette = GDI_GetObjPtr( handle, OBJ_PAL ); if (palette) { unrealize_function unrealize = palette->unrealize; palette->unrealize = NULL; GDI_ReleaseObj( handle ); if (unrealize) unrealize( handle ); } if (InterlockedCompareExchangePointer( (void **)&hLastRealizedPalette, 0, handle ) == handle) TRACE("unrealizing palette %p\n", handle); return TRUE; }
void Object::releaseObject() { if (val) { value &v = *val; if (!v["unrealize"].isUndefined()) v.call<void>("unrealize"); else { unrealize(); val->set("ptr", emscripten::val::null() ); val->set("type", (int)getObjectType() ); } delete val; } delete this; }
void SingleSource::setSample(Sample *newsample) { if (isRealized()) unrealize(); sample = newsample; }