quick start:g++ [flags ...] file ... -l /isip/tools/lib/$ISIP_BINARY/lib_numeric.a #include <Bark.h> boolean compute(VectorFloat& bark, const VectorFloat& freq);
description:VectorFloat freq(1); VectorFloat bark; freq(0) = 1000; Bark::compute(bark, freq);
Bark = 13 atan(0.76 * freq / 1000) + 3.5 atan(freq ^ 2 / 7500 ^ 2)For more details about this transformation, see:
static const String CLASS_NAME = L"Bark";
static const String DEF_PARAM = L"";
static const float A1 = 13.0;
static const float A2 = 0.76 / 1000.0;
static const float B1 = 3.5;
static const float B2 = 1.0 / 7500.0;error codes:
static const long ERR = (long)35300;
static Integral::DEBUG debug_level_d;
static MemoryManager mgr_d;
static const String& name();
static boolean diagnose(Integral::DEBUG debug_level);
boolean setDebug(Integral::DEBUG debug_level);
boolean debug(const unichar* message) const;
~Bark();
Bark();
Bark(const Bark& arg);
boolean assign(const Bark& arg)
Bark& operator= (const Bark& arg);
long sofSize() const;
boolean read(Sof& sof, long tag, const String& name = CLASS_NAME);
boolean write(Sof& sof, long tag, const String& name = CLASS_NAME) const;
boolean readData(Sof& sof, const String& pname = DEF_PARAM,long size = SofParser::FULL_OBJECT, boolean param = true, boolean nested = false);
boolean writeData(Sof& sof, const String& pname = DEF_PARAM) const;
boolean eq(const Bark& arg) const;
static void* operator new(size_t size);
static void* operator new[](size_t size);
static void operator delete(void* ptr);
static void operator delete[](void* ptr);
static boolean setGrowSize(long grow_size);
boolean clear(Integral::CMODE ctype = Integral::DEF_CMODE);
#include <Bark.h> #include <VectorFloat.h> int main() { // declare the input and output vectors // VectorFloat freq(L"100, 200, 300, 400, 500, 600"); VectorFloat bark; // transform the input using the Bark scale // Bark::compute(bark, freq); // exit gracefully // Integral::exit(); }