Audacity 3.2.0
|
Classes | |
struct | float_x4 |
Functions | |
void * | aligned_malloc (size_t required_bytes, size_t alignment) |
reserve aligned memory. Needs to be freed with aligned_free() More... | |
void | aligned_free (void *p) |
free memory allocated with aligned_malloc More... | |
template<typename cls > | |
cls * | aligned_new (int alignment) |
create a c++ class at an memory-aligned spot that needs to be deleted using aligned_delete More... | |
template<typename cls > | |
void | aligned_delete (cls *obj) |
template<typename T > | |
bool | is_aligned (T *obj, int alignment) |
template<typename fnc > | |
__finl void | perform_parallel_simd_aligned (float *a, float *b, int n, const fnc &f) |
template<typename fnc > | |
__finl void | perform_parallel_simd_aligned (float *a, int n, const fnc &f) |
template for applying math to one data buffer More... | |
__finl float_x4 __vecc | float_x4_from_float (float x) |
__finl float_x4 __vecc | float_x4_load_aligned (const float *x) |
__finl void __vecc | store_aligned (const float_x4 &a, float *x) |
__finl float_x4 __vecc | unzip1 (const float_x4 &a, const float_x4 &b) |
__finl float_x4 __vecc | unzip2 (const float_x4 &a, const float_x4 &b) |
__finl float_x4 __vecc | operator+ (float_x4 a, float_x4 b) |
__finl float_x4 __vecc | operator- (float_x4 a, float_x4 b) |
__finl float_x4 __vecc | operator* (float_x4 a, float_x4 b) |
__finl float_x4 __vecc | sqrt (const float_x4 &a) |
__finl float __vecc | rint (float a) |
__finl float_x4 __vecc | rint (const float_x4 &a) |
|
inline |
delete objects created using aligned_new
Definition at line 59 of file SimdTypes.h.
References aligned_free().
|
inline |
free memory allocated with aligned_malloc
Definition at line 43 of file SimdTypes.h.
References staffpad::vo::free().
Referenced by aligned_delete(), and staffpad::SamplesFloat< T >::dealloc().
|
inline |
reserve aligned memory. Needs to be freed with aligned_free()
Definition at line 29 of file SimdTypes.h.
Referenced by aligned_new(), and staffpad::SamplesFloat< T >::alloc().
|
inline |
create a c++ class at an memory-aligned spot that needs to be deleted using aligned_delete
Definition at line 51 of file SimdTypes.h.
References aligned_malloc().
Definition at line 104 of file SimdTypes_neon.h.
Definition at line 109 of file SimdTypes_neon.h.
Referenced by perform_parallel_simd_aligned().
|
inline |
Definition at line 69 of file SimdTypes.h.
Referenced by perform_parallel_simd_aligned().
Definition at line 139 of file SimdTypes_neon.h.
References staffpad::audio::simd::float_x4::s.
Definition at line 129 of file SimdTypes_neon.h.
References staffpad::audio::simd::float_x4::s.
Definition at line 134 of file SimdTypes_neon.h.
References staffpad::audio::simd::float_x4::s.
__finl void staffpad::audio::simd::perform_parallel_simd_aligned | ( | float * | a, |
float * | b, | ||
int | n, | ||
const fnc & | f | ||
) |
this template allows to write float SIMD code with the supported operators the following way:
float *a_vec; const float *b_vec; perform_parallel_simd_aligned(a_vec, b_vec, 512, [](auto &a, auto &b) { auto t = a; a = 3.f * a + 12.f * b; b = 0.25f * a + 3.f * b; });
Definition at line 87 of file SimdTypes.h.
References float_x4_load_aligned(), is_aligned(), and store_aligned().
Referenced by staffpad::anonymous_namespace{TimeAndPitch.cpp}::_fft_shift(), staffpad::anonymous_namespace{TimeAndPitch.cpp}::_lr_to_ms(), staffpad::anonymous_namespace{TimeAndPitch.cpp}::_ms_to_lr(), and staffpad::anonymous_namespace{TimeAndPitch.cpp}::_unwrapPhaseVec().
__finl void staffpad::audio::simd::perform_parallel_simd_aligned | ( | float * | a, |
int | n, | ||
const fnc & | f | ||
) |
template for applying math to one data buffer
Definition at line 111 of file SimdTypes.h.
References float_x4_load_aligned(), is_aligned(), and store_aligned().
Definition at line 154 of file SimdTypes_neon.h.
References staffpad::audio::simd::float_x4::s.
Referenced by rint().
Definition at line 149 of file SimdTypes_neon.h.
References rint().
Referenced by staffpad::anonymous_namespace{TimeAndPitch.cpp}::_unwrapPhase(), staffpad::anonymous_namespace{TimeAndPitch.cpp}::_unwrapPhaseVec(), WaveTrackShifter::HintOffsetLarger(), WaveTrackShifter::QuantizeOffset(), and LWSlider::ValueToPosition().
Definition at line 144 of file SimdTypes_neon.h.
References staffpad::audio::simd::float_x4::s.
Referenced by AmpStat(), LegacyCompressorBase::AvgCircle(), Biquad::CalcChebyshevType1Filter(), Biquad::CalcChebyshevType2Filter(), SqliteSampleBlock::CalcSummary(), SpectrumAnalyst::Calculate(), VoiceKey::CalibrateNoise(), BassTrebleBase::Instance::Coefficients(), SpectrumAnalyst::CubicMaximize(), DistortionBase::Instance::CubicTable(), graphics::Distance(), ExportMixerPanel::Distance(), SqliteSampleBlock::DoGetMinMaxRMS(), anonymous_namespace{SpectrumView.cpp}::DrawClipSpectrum(), SelectedRegion::fc(), anonymous_namespace{WaveDataCache.cpp}::AppendBufferHelper::FillBlocksFromAppendBuffer(), ScienFilterBase::FilterMagnAtFreq(), ContrastBase::GetDB(), WaveChannelUtilities::GetRMS(), Sequence::GetRMS(), WaveDataCache::InitializeElement(), SpectralSelectionBar::ModifySpectralSelection(), SelectHandle::MoveSnappingFreqSelection(), graphics::Norm(), LoudnessBase::Process(), NyquistBase::Process(), PaulStretch::process(), NoiseBase::ProcessBlock(), SpectralSelectionBar::SetFrequencies(), SelectHandle::SnapCenterOnce(), MeterPanel::UpdateDisplay(), audacity::cloud::audiocom::sync::anonymous_namespace{WavPackCompressor.cpp}::UpdateRMS(), and LinearOutputRateTimeWarper::Warp().
Definition at line 114 of file SimdTypes_neon.h.
References staffpad::audio::simd::float_x4::s.
Referenced by perform_parallel_simd_aligned().
Definition at line 119 of file SimdTypes_neon.h.
References staffpad::audio::simd::float_x4::s.
Definition at line 124 of file SimdTypes_neon.h.
References staffpad::audio::simd::float_x4::s.