As discussed in the previous section, int , float , double , bool , char , string and complex (complex<float> , complex<double> ) are data types adopted from C++. In HARK , whole numbers that can be identified as integers (sound source count, FFT window length, etc.) uses the int data type. Other number values (such as angles) uses float . flags or boolean that can only be assigned 2 values (either true or false) uses bool . A string is used for a sequence of characters such as filenames, etc.. Since HARK is always processing spectrum units and time blocks (frames), primitive types are not directly used as the data type for the node’s terminal. Instead, it normally uses Matrix , Vector or Map . The same for complex<float> , it is not used individually, but normally used with Vector or Map in order to express the spectrum. Double precision floating point (double ) is only used in Source .